:root{--ink:#102638;--deep:#081b2c;--blue:#1877d2;--cyan:#42d6cc;--lime:#d9f56f;--paper:#f4f7f2;--panel:#fff;--line:#d9e2dd;--muted:#6c7d87;--shadow:0 18px 45px #071b2c1a}
*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{margin:0;font-family:Tahoma,'Leelawadee UI',sans-serif;color:var(--ink);background:var(--paper)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted);line-height:1.7}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--blue)}
.login-view{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:var(--deep)}.login-art{position:relative;min-width:0;overflow:hidden;padding:7vh 8vw;color:#fff;background:radial-gradient(circle at 25% 20%,#175786 0,transparent 35%),linear-gradient(155deg,#092239,#06131f)}.brand-mark,.mini-brand{display:grid;place-items:center;width:52px;height:52px;border:2px solid var(--cyan);border-radius:14px;font-size:20px;font-weight:700;color:var(--cyan);box-shadow:inset 0 0 0 4px #42d6cc16}.login-art h1{font-size:clamp(58px,8vw,116px);line-height:.78;letter-spacing:-7px;margin:7vh 0 30px}.login-art h1 span{color:transparent;-webkit-text-stroke:2px var(--cyan)}.lead{max-width:530px;font-size:20px;line-height:1.7;color:#c8dce8}.course{position:absolute;bottom:30px;color:#9db7c6}.world-preview{position:absolute;right:0;bottom:0;width:50%;height:55%;opacity:.9;background:linear-gradient(150deg,transparent 45%,#0b3444 46%)}.world-preview i{position:absolute;display:block}.mountain{border-left:150px solid transparent;border-right:150px solid transparent;border-bottom:230px solid #155166;right:-40px;bottom:30px}.house{width:90px;height:65px;background:#f0b85a;right:28%;bottom:18%;border:5px solid #082437}.house:before{content:"";position:absolute;border-left:60px solid transparent;border-right:60px solid transparent;border-bottom:65px solid #e3633f;left:-20px;top:-65px}.hero{width:28px;height:60px;background:var(--cyan);border-radius:50% 50% 10px 10px;right:53%;bottom:13%;box-shadow:0 -22px 0 -4px #e9b18d}.tree{width:16px;height:50px;background:#79553b;bottom:15%}.tree:before{content:"";position:absolute;width:70px;height:100px;background:#2f8b73;clip-path:polygon(50% 0,100% 100%,0 100%);left:-27px;top:-80px}.t1{right:75%}.t2{right:10%;bottom:10%;transform:scale(.7)}
.login-panel{min-width:0;display:grid;place-items:center;padding:40px;background:linear-gradient(140deg,#f9fbf6,#e8efea)}.card{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.login-card{min-width:0;width:min(460px,100%);padding:44px}.login-card h2{font-size:34px;margin:7px 0}.login-card label{display:block;margin:20px 0 7px;font-weight:600}.login-card input,.sync-card input,.password-card input{width:100%;padding:14px 16px;border:1px solid #cbd7d2;border-radius:10px;outline:none}.login-card input:focus,input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1877d21c}.primary{border:0;border-radius:10px;background:var(--blue);color:#fff;padding:13px 20px;font-weight:700}.login-card .primary{display:flex;justify-content:space-between;width:100%;margin-top:24px}.link-btn,.admin-toggle{display:block;border:0;background:none;color:var(--blue);margin:15px auto}.admin-toggle{color:var(--muted);font-size:13px}.known-device{padding:10px;border-radius:8px;background:#e7f8f3;font-size:13px}.known-device button{border:0;background:none;color:var(--blue)}
.pin-value{position:absolute!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none}.pin-unlock{margin-top:12px}.pin-dots{display:flex;justify-content:center;gap:14px;margin:14px 0 20px}.pin-dots i{width:15px;height:15px;border:2px solid #8aa0ab;border-radius:50%;transition:.15s}.pin-dots i.filled{background:var(--blue);border-color:var(--blue);transform:scale(1.08)}.pin-dots.shake{animation:pinshake .28s}.pin-pad{display:grid;grid-template-columns:repeat(3,64px);justify-content:center;gap:10px 22px}.pin-pad button{width:64px;height:54px;border:1px solid #d4dfda;border-radius:50%;background:#f6f9f7;color:var(--ink);font-size:20px;font-weight:700}.pin-pad button:active{background:var(--cyan);transform:scale(.94)}.pin-pad button[data-pin-clear]{font-size:12px}@keyframes pinshake{25%{transform:translateX(-7px)}50%{transform:translateX(7px)}75%{transform:translateX(-4px)}}
.teacher-account-card p{margin:8px 0 5px}.teacher-account-card small{color:var(--muted);line-height:1.65}
.login-sound-toggle{display:flex;align-items:center;gap:11px;width:100%;margin:14px 0 2px;padding:10px 12px;border:1px solid #9edbd2;border-radius:12px;color:#123b44;background:linear-gradient(135deg,#e8faf5,#f6fbef);text-align:left;box-shadow:0 6px 16px #123b4410;transition:.18s}.login-sound-toggle:hover{border-color:#42bfb4;transform:translateY(-1px);box-shadow:0 9px 20px #123b4418}.login-sound-toggle>span:first-child{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#42d6cc,#78dfaf);font-size:20px;box-shadow:0 5px 14px #42bfb43a}.login-sound-toggle b,.login-sound-toggle small{display:block}.login-sound-toggle b{font-size:13px}.login-sound-toggle small{margin-top:2px;color:#6b8589;font-size:10px}.login-sound-toggle.muted{border-color:#d6dfdc;background:#f3f6f4;color:#697b80;box-shadow:none}.login-sound-toggle.muted>span:first-child{background:#dfe7e4;box-shadow:none}
#toast{position:fixed;z-index:1000;top:18px;left:50%;transform:translate(-50%,-80px);padding:12px 20px;border-radius:10px;background:var(--deep);color:#fff;box-shadow:var(--shadow);transition:.25s;max-width:90%}#toast.show{transform:translate(-50%,0)}#toast.error{background:#b8323a}.game-view{min-height:100vh;background:#e8efea}.topbar{height:72px;padding:0 24px;display:flex;align-items:center;gap:10px;background:var(--deep);color:#fff}.mini-brand{width:42px;height:42px;font-size:15px;border-radius:10px}.topbar small{display:block;color:#8faaba}.topbar nav{display:flex;gap:5px;margin:auto}.topbar button{border:1px solid #ffffff1e;background:#ffffff0c;color:#fff;padding:8px 13px;border-radius:8px}.topbar nav button.active{background:var(--cyan);color:var(--deep)}.user-chip{display:flex;align-items:center;gap:8px}
.game-layout{display:grid;grid-template-columns:240px minmax(500px,1fr) 310px;gap:14px;padding:14px;max-width:1600px;margin:auto}.panel{background:var(--panel);border:1px solid var(--line);border-radius:15px;box-shadow:0 5px 20px #071b2c0b}.left-panel{padding:18px}.profile{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px}.profile small{display:block;color:var(--muted)}.avatar{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:var(--cyan)}.bars label{display:grid;grid-template-columns:55px 1fr 40px;align-items:center;font-size:12px;margin:13px 0}.bars progress{width:100%;height:10px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:18px 0}.stats div{padding:9px 4px;text-align:center;background:#edf3f0;border-radius:8px}.stats small,.stats b{display:block}.inventory{display:grid;gap:6px}.inventory-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:#f3f6f3;border-radius:8px;font-size:13px}.inventory-item span small{display:block;margin-top:2px;color:#79a6a8;font-size:9px}.inventory-item.equipped{border-color:#dff66f55!important;box-shadow:inset 3px 0 #dff66f}.inventory-item button{border:0;background:var(--blue);color:#fff;border-radius:5px;font-size:10px}.inventory-item button:disabled{opacity:.55}.action-btn{width:100%;border:1px solid #b68d25;background:var(--lime);border-radius:9px;padding:11px;margin-top:12px;font-weight:700}.feature-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-top:8px}.feature-actions button{border:1px solid var(--line);border-radius:7px;background:#fff;padding:7px 2px;font-size:11px}
.world-wrap{min-width:0}.world-head{height:48px;display:flex;justify-content:space-between;align-items:center}.world-head b{margin-left:8px}canvas{display:block;width:100%;aspect-ratio:8/5;border-radius:16px;border:5px solid #fff;box-shadow:var(--shadow);background:#9bd18b}.nearby{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.nearby button{border:1px solid var(--line);background:#fff;padding:6px 9px;border-radius:20px;font-size:12px}.right-stack{display:grid;grid-template-rows:1.2fr 1fr;gap:14px;max-height:calc(100vh - 100px)}.quests,.chat{min-height:0;overflow:hidden}.panel-title{height:50px;display:flex;align-items:center;justify-content:space-between;padding:0 15px;border-bottom:1px solid var(--line)}.panel-title h3{margin:0}.quest-card{padding:13px 15px;border-bottom:1px solid var(--line)}.quest-card b{font-size:14px}.quest-card p{font-size:12px;color:var(--muted);margin:5px 0}.quest-meta{display:flex;justify-content:space-between;font-size:11px}.quest-card progress{width:100%;height:7px}.chat{display:grid;grid-template-rows:50px 1fr 48px}.online-dot{font-size:11px;color:#1d956f}.online-dot:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#28c990;margin-right:5px}.chat #chatMessages{overflow:auto;padding:10px}.chat-line{font-size:12px;padding:4px 0}.chat-line b{color:var(--blue)}.chat-line .report-chat{float:right;border:0;background:none;color:#9a6670;padding:0 3px}.chat form{display:flex;border-top:1px solid var(--line);padding:7px}.chat input{min-width:0;flex:1;border:0;outline:0}.chat form button{border:0;background:var(--blue);color:#fff;border-radius:7px}.mobile-controls{display:none}
dialog{width:min(1200px,95vw);height:min(850px,92vh);border:0;border-radius:20px;padding:0;box-shadow:0 30px 90px #0008}dialog::backdrop{background:#06131fd4}.admin-head{display:flex;justify-content:space-between;align-items:center;padding:20px 26px;background:var(--deep);color:#fff}.admin-head h2,.admin-head p{margin:0}.admin-head button{background:none;border:0;color:#fff;font-size:20px}.admin-tools{display:grid;grid-template-columns:2fr 1fr;gap:12px;padding:16px}.sync-card,.password-card{padding:15px;border:1px solid var(--line);border-radius:12px}.sync-card h3,.sync-card p,.password-card h3{margin:0 0 8px}.sync-card>div,.password-card>div{display:flex;gap:8px}.admin-tabs{display:flex;overflow-x:auto;padding:0 16px;border-bottom:1px solid var(--line)}.admin-tabs button{border:0;background:none;padding:12px 15px;white-space:nowrap}.admin-tabs button.active{color:var(--blue);border-bottom:3px solid var(--blue)}.admin-actions{display:flex;gap:12px;align-items:center;padding:12px 16px}.report-link{color:var(--blue);font-weight:700}.table-wrap{overflow:auto;height:calc(100% - 340px);padding:0 16px}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:8px;white-space:nowrap}td input,td select{max-width:180px;padding:6px;border:1px solid var(--line);border-radius:5px}td button{border:0;border-radius:5px;padding:5px 8px;margin-right:4px}.save-row{background:#dff4ec}.delete-row{background:#ffe2e2;color:#a21d25}.readonly-row{background:#f4f6f5}
.admin-dashboard{padding:0 16px 14px}.admin-dashboard-loading,.admin-dashboard-error{padding:18px;border-radius:12px;text-align:center;background:#eef5f3}.admin-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.admin-metrics article{display:grid;grid-template-columns:auto 1fr;gap:2px 7px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#f5f9f7}.admin-metrics article>span{grid-row:1/3;font-size:20px}.admin-metrics small{color:var(--muted);font-size:9px}.admin-metrics b{font-size:17px}.admin-insights{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin-top:8px}.admin-insights>section{min-width:0;padding:10px;border:1px solid var(--line);border-radius:10px}.admin-insights h3{margin:0 0 6px;font-size:12px}.admin-class-wrap{max-height:100px;overflow:auto}.admin-insights table{font-size:10px}.admin-insights th,.admin-insights td{padding:4px 6px}.admin-insights ul{max-height:100px;margin:0;padding:0;overflow:auto;list-style:none}.admin-insights li{display:grid;grid-template-columns:1fr auto;gap:1px 7px;padding:3px 0;border-bottom:1px solid var(--line);font-size:9px}.admin-insights li b{grid-column:1}.admin-insights li span{grid-column:1;color:var(--muted)}.admin-insights li small{grid-column:2;grid-row:1/3;color:var(--muted)}#adminDialog .table-wrap{height:270px}
.admin-broadcast{display:grid;grid-template-columns:minmax(180px,.7fr) 2fr;gap:12px;margin:0 16px 14px;padding:12px;border:1px solid #138a7c38;border-radius:12px;background:linear-gradient(135deg,#ecfaf6,#f7fbfa)}.admin-broadcast small{color:#168d7d;font-size:9px;font-weight:800;letter-spacing:1px}.admin-broadcast h3{margin:2px 0 3px;font-size:14px}.admin-broadcast p{margin:0;color:var(--muted);font-size:10px}.admin-broadcast form{display:grid;grid-template-columns:1fr 1fr 1.2fr 2fr auto;gap:6px;align-items:center}.admin-broadcast select,.admin-broadcast input{min-width:0;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit}.admin-broadcast button{padding:9px 12px;border:0;border-radius:8px;color:#fff;background:#137f73;font-weight:700;white-space:nowrap}.admin-broadcast button:disabled{opacity:.55}.admin-broadcast-feedback{grid-column:1/-1;min-height:12px;color:var(--muted);font-size:10px}.admin-broadcast-feedback.success{color:#157354}.admin-broadcast-feedback.error{color:#b8323a}
.admin-lesson-plan{margin:0 16px 14px;padding:15px;border:1px solid #137f7342;border-radius:14px;background:linear-gradient(145deg,#f4fbf8,#edf8f5)}
.admin-lesson-plan>header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:11px}.admin-lesson-plan>header small{color:#137f73;font-size:8px;font-weight:900;letter-spacing:1px}.admin-lesson-plan>header h3,.admin-lesson-plan>header p{margin:2px 0}.admin-lesson-plan>header h3{font-size:15px}.admin-lesson-plan>header p{color:var(--muted);font-size:9px}.admin-lesson-plan>header>span{padding:7px 10px;border-radius:20px;color:#fff;background:#137f73;font-size:9px;font-weight:800;white-space:nowrap}
.lesson-timeline{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:7px;overflow-x:auto}.lesson-timeline article{display:grid;grid-template-columns:28px minmax(0,1fr);gap:7px;padding:9px;border:1px solid #138a7c24;border-radius:10px;background:#fff}.lesson-timeline article>b{display:grid;width:27px;height:27px;place-items:center;border-radius:8px;color:#07302d;background:#bdf0df;font-size:10px}.lesson-timeline small,.lesson-timeline strong,.lesson-timeline p{display:block}.lesson-timeline small{color:#168d7d;font-size:7px;font-weight:800}.lesson-timeline strong{font-size:9px}.lesson-timeline p{min-height:25px;margin:2px 0;color:var(--muted);font-size:7px;line-height:1.4}.lesson-timeline button{grid-column:1/-1;padding:6px;border:1px solid #138a7c35;border-radius:7px;color:#126c63;background:#eaf8f4;font-size:7px;font-weight:800}
.admin-live{margin:0 16px 14px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fbfa}.admin-live>header{display:flex;justify-content:space-between;gap:10px;align-items:center}.admin-live>header small{color:#168d7d;font-size:9px;font-weight:800;letter-spacing:1px}.admin-live>header h3{margin:2px 0;font-size:14px}.admin-live>header label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px}.admin-live select{padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:#fff}.admin-live-summary{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0}.admin-live-summary>*{padding:4px 8px;border-radius:20px;color:#44635f;background:#e8f2ef;font-size:9px;font-style:normal}.admin-live-summary b{color:#086b5f;background:#d7f4eb}.admin-live-summary .warning{color:#9b4c15;background:#fff0d9}.admin-live-students{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:210px;overflow:auto}.admin-live-student{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(120px,.8fr) auto;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:9px;text-align:left;background:#fff}.admin-live-student:hover{border-color:#2aa99a;background:#f0fbf8}.admin-live-student>i{width:8px;height:8px;border-radius:50%;background:#98aaa6}.admin-live-student.online>i{background:#33c58d;box-shadow:0 0 7px #33c58d}.admin-live-student.attention{border-color:#e5a35080;background:#fffbf2}.admin-live-student span b,.admin-live-student span small,.admin-live-student span em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-live-student span b{font-size:11px}.admin-live-student span small{margin-top:2px;color:var(--muted);font-size:9px}.admin-live-student span em{color:#3c6862;font-size:9px;font-style:normal}.admin-live-student strong{padding:4px 6px;border-radius:6px;color:#9b4c15;background:#ffe9c9;font-size:8px;white-space:nowrap}.admin-live-empty{grid-column:1/-1;padding:15px;color:var(--muted);text-align:center;font-size:10px}.admin-live-empty.error{color:#b8323a}
.teacher-announcement{position:fixed;z-index:1200;left:50%;top:88px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:13px;align-items:center;width:min(620px,calc(100% - 28px));padding:16px 18px;border:1px solid #efff8d88;border-radius:16px;color:#effff8;background:linear-gradient(135deg,#123b46f5,#0a2230f7);box-shadow:0 20px 60px #0009,0 0 32px #65dfcd20;transform:translate(-50%,-150px);opacity:0;transition:.28s;pointer-events:none}.teacher-announcement.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}.teacher-announcement>span{font-size:30px}.teacher-announcement small,.teacher-announcement b{display:block}.teacher-announcement small{color:#80ddd0;font-size:10px;letter-spacing:.6px}.teacher-announcement b{margin-top:2px;color:#efffa1;font-size:17px}.teacher-announcement p{margin:4px 0 0;line-height:1.55}.teacher-announcement button{padding:8px 12px;border:1px solid #65dfcd55;border-radius:8px;color:#eafff9;background:#113c48}
.admin-learning-analytics{margin-top:9px;padding:12px;border:1px solid #3aa59332;border-radius:12px;background:linear-gradient(135deg,#effaf6,#f8fbf3)}.admin-learning-head{display:flex;justify-content:space-between;gap:12px;align-items:end}.admin-learning-head small{color:#168474;font-size:8px;font-weight:800;letter-spacing:.12em}.admin-learning-head h3{margin:2px 0 0}.admin-learning-head>span{color:var(--muted);font-size:9px}.admin-competency-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}.admin-competency-metrics article{display:flex;gap:8px;padding:9px;border-radius:9px;background:#fff;border:1px solid var(--line)}.admin-competency-metrics article>span{font-size:22px}.admin-competency-metrics article>div{min-width:0;flex:1}.admin-competency-metrics small,.admin-competency-metrics b,.admin-competency-metrics em{display:block}.admin-competency-metrics small{font-size:8px;color:var(--muted)}.admin-competency-metrics b{font-size:15px}.admin-competency-metrics progress{width:100%;height:5px}.admin-competency-metrics em{font-size:7px;color:#52706a}.admin-difficult{display:grid;grid-template-columns:160px 1fr;gap:9px;margin-top:8px}.admin-difficult h4{margin:3px 0;font-size:10px}.admin-difficult ol{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:0;padding:0;list-style:none}.admin-difficult li{display:flex;gap:6px;padding:6px;border-radius:7px;background:#fff}.admin-difficult li>span{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;color:#fff;background:#d46b59;font-size:9px}.admin-difficult li b,.admin-difficult li small{display:block}.admin-difficult li b{font-size:8px}.admin-difficult li small{font-size:7px;color:var(--muted)}
@media(max-width:1100px){.game-layout{grid-template-columns:200px 1fr}.right-stack{grid-column:1/-1;grid-template-columns:1fr 1fr;height:350px}.login-art{padding:7vh 5vw}}
@media(max-width:760px){.login-view{display:block}.login-art{width:100%;min-height:36vh;padding:35px 24px}.login-art h1{font-size:52px;margin:25px 0 15px}.login-art .lead{font-size:15px;overflow-wrap:anywhere}.world-preview{display:none}.course{position:static}.login-panel{display:block;width:100%;padding:18px}.login-card{width:100%;padding:28px 20px}.topbar{padding:0 10px}.topbar>div:nth-child(2),.topbar nav,.user-chip span{display:none}.game-layout{display:block;padding:8px}.left-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.profile,.bars{grid-column:span 1}.stats,.inventory,.left-panel h3,.action-btn,.feature-actions{grid-column:1/-1}.world-head small{display:none}.right-stack{display:grid;grid-template-columns:1fr;height:600px;margin-top:10px;max-height:none}.mobile-controls{display:grid;place-items:center;margin-top:6px}.mobile-controls button{width:48px;height:38px;border:1px solid var(--line);background:#fff}.admin-tools{grid-template-columns:1fr}.table-wrap{height:calc(100% - 450px)}}
@media(max-width:760px){#adminDialog{overflow:auto}.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-insights{grid-template-columns:1fr}.admin-class-wrap,.admin-insights ul{max-height:150px}#adminDialog .table-wrap{height:360px}.craft-cost{grid-template-columns:1fr}.admin-broadcast{grid-template-columns:1fr}.admin-broadcast form{grid-template-columns:1fr}.admin-broadcast-feedback{grid-column:1}.admin-live-students{grid-template-columns:1fr}.admin-live-student{grid-template-columns:auto minmax(0,1fr);}.admin-live-student>span:nth-of-type(2),.admin-live-student strong{grid-column:2}.teacher-announcement{top:calc(70px + env(safe-area-inset-top));grid-template-columns:auto 1fr;padding:13px}.teacher-announcement button{grid-column:1/-1}.teacher-announcement b{font-size:15px}}
@media(max-width:760px){.admin-lesson-plan{margin:0 8px 10px;padding:12px}.admin-lesson-plan>header{align-items:flex-start}.lesson-timeline{grid-template-columns:repeat(5,220px)}}

/* Professional game surface */
body.in-game{background:#071724;color:#eaf8f4}.in-game .game-view{background:radial-gradient(circle at 50% -10%,#16455a 0,#0a2333 38%,#061520 100%)}.in-game .topbar{position:sticky;top:0;z-index:30;background:linear-gradient(90deg,#061520f5,#0d3144f5 50%,#061520f5);border-bottom:1px solid #55e6d333;box-shadow:0 10px 28px #0005;backdrop-filter:blur(14px)}.in-game .topbar nav{padding:5px;border-radius:13px;background:#020d1666}.in-game .topbar nav button{border-color:transparent;color:#a9c9d1}.in-game .topbar nav button:hover{background:#ffffff12;color:#fff}.in-game .topbar nav button.active{background:linear-gradient(135deg,#5fe1d0,#35b8c8);color:#04202a;box-shadow:0 5px 18px #3cd7c044}.in-game .game-layout{gap:16px;padding:16px}.in-game .panel{color:#dceeea;background:linear-gradient(160deg,#102d3bea,#0a202bea);border:1px solid #75e8d526;box-shadow:0 16px 35px #0003,inset 0 1px #ffffff0b;backdrop-filter:blur(14px)}.in-game .left-panel h3,.in-game .panel-title h3{color:#fff;letter-spacing:.3px}.in-game .profile{border-color:#ffffff13}.in-game .profile small,.in-game .world-head small,.in-game .quest-card p{color:#91afb7}.in-game .avatar{border:1px solid #ffffff40;color:#05212a;font-size:18px;box-shadow:0 7px 20px #42d6cc33;transition:.2s}.in-game .avatar:hover{transform:translateY(-2px) rotate(-3deg)}.tiny-link{display:block;padding:0;margin-top:3px;border:0;background:none;color:#4fd8cd;font-size:11px}.in-game .bars progress,.in-game .quest-card progress{overflow:hidden;border:0;border-radius:10px;background:#05151d}.in-game progress::-webkit-progress-bar{background:#04151d;border-radius:10px}.in-game progress::-webkit-progress-value{background:linear-gradient(90deg,#37b8c9,#69e0c2);border-radius:10px}.in-game .stats div{background:#061924;border:1px solid #ffffff0c}.in-game .stats small{color:#7fa2ab}.in-game .stats b{color:#dffb8a;font-size:18px}.in-game .inventory-item{background:#061923;border:1px solid #ffffff0c;color:#d9ebe7;transition:.18s}.in-game .inventory-item:hover{border-color:#56dac554;transform:translateX(2px)}.in-game .feature-actions button{color:#cde3df;background:#061923;border-color:#ffffff14}.in-game .feature-actions button:hover{color:#061923;background:#65dbca}.in-game .action-btn{border:0;background:linear-gradient(135deg,#ddf66f,#8fd66d);color:#17301a;box-shadow:0 8px 18px #b7e56b20}.world-wrap{position:relative}.in-game .world-head{color:#dff5ef;padding:0 6px}.in-game .world-head #mapIcon{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#ffffff10}.in-game canvas{border:3px solid #b9fff23b;border-radius:19px;background:#0b202c;box-shadow:0 24px 55px #0008,0 0 0 1px #0a1720,inset 0 0 50px #0006}.tutorial-banner{position:absolute;z-index:10;left:18px;top:60px;max-width:390px;padding:12px 16px 12px 52px;border:1px solid #fff5a93d;border-radius:13px;background:linear-gradient(135deg,#102b38f2,#183d48f2);color:#eafaf4;box-shadow:0 14px 34px #0006;backdrop-filter:blur(12px)}.tutorial-banner:before{content:'✦';position:absolute;left:15px;top:12px;display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:#dff66f;color:#173321;font-weight:700}.tutorial-banner b{display:block;color:#f2ffb2}.tutorial-banner small{color:#a8c8cc}.in-game .quest-card{position:relative;border-color:#ffffff0c;background:linear-gradient(90deg,#ffffff04,transparent)}.in-game .quest-card:before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:4px;background:#4fdacb}.in-game .quest-card b{color:#eefbf7}.in-game .quest-meta{color:#87aeb4}.in-game .chat{background:linear-gradient(160deg,#0d2937ed,#081d28ed)}.in-game .chat-line{color:#c7ddda}.in-game .chat-line b{color:#6fe1d0}.in-game .chat form{border-color:#ffffff10;background:#061923}.in-game .chat input{color:#fff;background:transparent}.in-game .chat input::placeholder{color:#66858d}.in-game .chat form button{padding:5px 14px;background:linear-gradient(135deg,#4ad2c5,#278eb7)}.in-game .nearby button{color:#d5ebe7;background:#0d2b38;border-color:#5ce0cd33}.in-game .nearby button:hover{background:#4fd2c4;color:#06202a}
.avatar-dialog{width:min(620px,94vw);height:auto;padding:0 24px 24px;color:#dff1ed;background:linear-gradient(155deg,#102d3b,#071923);border:1px solid #6ce4d13d}.avatar-dialog::backdrop{background:#020a0edd}.avatar-dialog-head{display:flex;align-items:center;justify-content:space-between;margin:0 -24px 18px;padding:20px 24px;border-bottom:1px solid #ffffff12}.avatar-dialog-head h2,.avatar-dialog-head p{margin:0}.avatar-dialog-head button{border:0;background:none;color:#fff;font-size:20px}.style-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.style-grid button{padding:15px;text-align:left;color:#cde2df;background:#071923;border:1px solid #ffffff14;border-radius:12px}.style-grid button b,.style-grid button small{display:block}.style-grid button small{margin-top:4px;color:#7e9ea5}.style-grid button.selected{border-color:#58decc;background:#123f48;box-shadow:0 0 0 2px #58decc20}.color-grid{display:flex;gap:11px;flex-wrap:wrap;margin-bottom:22px}.color-grid button{width:38px;height:38px;border:3px solid #ffffff40;border-radius:50%;background:var(--swatch)}.color-grid button:nth-child(1){background:#42d6cc}.color-grid button:nth-child(2){background:#4f8cff}.color-grid button:nth-child(3){background:#a66cff}.color-grid button:nth-child(4){background:#ff6b7a}.color-grid button:nth-child(5){background:#ff9f43}.color-grid button:nth-child(6){background:#55b86b}.color-grid button:nth-child(7){background:#e8c547}.color-grid button:nth-child(8){background:#8b6f61}.color-grid button.selected{outline:3px solid #fff;outline-offset:2px}.avatar-dialog>.primary{width:100%}
@media(max-width:760px){.in-game .game-layout{padding:8px}.tutorial-banner{left:12px;right:12px;top:54px;max-width:none}.style-grid{grid-template-columns:1fr}.in-game .left-panel{background:#0b2633}.in-game canvas{border-radius:14px}.in-game .right-stack{height:680px}}
.login-art{background:linear-gradient(105deg,#04131ff5 0%,#082638e8 48%,#0826387d 100%),url('maps/village.webp') center/cover}.login-art .world-preview{display:none}
.feature-dialog{width:min(760px,95vw);height:auto;max-height:88vh;padding:0;color:#dff1ed;background:linear-gradient(155deg,#102d3b,#071923);border:1px solid #6ce4d13d}.feature-dialog::backdrop{background:#020a0ee3}.feature-dialog-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #ffffff12;background:#0b2634f5;backdrop-filter:blur(12px)}.feature-dialog-head h2,.feature-dialog-head p{margin:0}.feature-dialog-head button{border:0;background:none;color:#fff;font-size:20px}.feature-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:20px 24px 26px}.service-card{position:relative;padding:16px;border:1px solid #ffffff12;border-radius:14px;background:linear-gradient(145deg,#0c2633,#071923);overflow:hidden}.service-card:after{content:'';position:absolute;right:-25px;top:-25px;width:80px;height:80px;border-radius:50%;background:#53d9c414;filter:blur(3px)}.service-card h3{margin:0 0 5px;color:#fff}.service-card p{min-height:38px;margin:0 0 12px;color:#83a4aa;font-size:12px;line-height:1.6}.service-card .service-meta{display:flex;justify-content:space-between;align-items:center;margin:10px 0;color:#dff67a}.service-card .service-actions{display:flex;gap:7px}.service-card button{position:relative;z-index:1;flex:1;padding:8px;border:1px solid #65dfcd35;border-radius:8px;background:#113847;color:#dff5f0}.service-card button.primary-action{border:0;background:linear-gradient(135deg,#5ddcc9,#2b9eb6);color:#06202a;font-weight:700}.service-card button:disabled{opacity:.4;cursor:not-allowed}.home-service{grid-column:1/-1;text-align:center;padding:28px}.home-level{display:grid;place-items:center;width:92px;height:92px;margin:0 auto 12px;border:2px solid #65dfcd;border-radius:28px;background:#50d8c519;color:#eaff9c;font-size:34px;font-weight:700;box-shadow:0 0 35px #56d8c327}
.npc-profile{grid-column:1/-1;display:flex;gap:18px;align-items:center;padding:22px;border:1px solid #eaff9740;border-radius:18px;background:radial-gradient(circle at 12% 50%,#dff66f1c,transparent 26%),linear-gradient(135deg,#123943,#081d29)}.npc-portrait{display:grid;place-items:center;flex:0 0 84px;width:84px;height:84px;border:2px solid #dff66f;border-radius:25px;background:#071923;font-size:43px;box-shadow:0 0 35px #dff66f25}.npc-speech small{color:#dff66f;font-weight:700;letter-spacing:.4px}.npc-speech p{margin:7px 0 0;color:#e8f5f1;font-size:16px;line-height:1.75}.npc-service{grid-column:1/-1;display:flex;gap:12px;align-items:center;justify-content:space-between;padding:13px 16px;border:1px solid #ffffff12;border-radius:13px;color:#9dbbbd;background:#071923}.npc-service button{padding:10px 16px;border:0;border-radius:9px;color:#06202a;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:700;white-space:nowrap}
.craft-card.ready{border-color:#dff66f50}.craft-output{display:flex;justify-content:space-between;gap:8px;padding:9px;border-radius:9px;color:#efffa1;background:#061923}.craft-output span{color:#8bd9cc;font-size:11px}.craft-cost{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:9px 0}.craft-cost span{padding:6px;border-radius:7px;text-align:center;font-size:10px;background:#061923}.craft-cost .enough{color:#8ee0a9}.craft-cost .missing{color:#ff9aa7}
.service-card.craft-only{border-color:#d7a8ff45;background:linear-gradient(145deg,#201a38,#0d1728)}.service-card.craft-only:after{background:#bb75ff22}.service-card.craft-only .service-meta span:first-child{color:#e2b9ff;font-weight:700}.service-card.craft-only .primary-action{background:linear-gradient(135deg,#d397ff,#7f72e8);color:#130d2c}
.service-card.loot-only{border-color:#6fffc954;background:linear-gradient(145deg,#132d30,#0d1728)}.service-card.loot-only:after{background:#68ffc222}.service-card.loot-only .service-meta span:first-child{color:#7fffd1;font-weight:700}.service-card.loot-only .primary-action{background:linear-gradient(135deg,#79f0c5,#38a8a5);color:#062725}.victory-loot{display:block;margin-top:5px;color:#7fffd1;font-size:.85rem;text-shadow:0 0 12px #55e8b966}
.challenge-input{display:grid;gap:8px;margin:14px 0;padding:16px;border:1px solid #75ead444;border-radius:14px;background:#071d28}.challenge-input label{color:#dfffa2;font-weight:800}.challenge-input input{width:100%;padding:13px 14px;border:1px solid #74e6d066;border-radius:10px;color:#fff;background:#03141d;font:700 16px inherit;outline:none}.challenge-input input:focus{border-color:#e6ff7c;box-shadow:0 0 0 3px #dfff7820}.challenge-input small{color:#7da2a6;font-size:9px}
.home-hub{grid-column:1/-1;display:grid;grid-template-columns:250px 1fr;gap:14px}.home-visual{position:relative;grid-row:1/3;min-height:260px;border:1px solid #ffffff14;border-radius:18px;overflow:hidden;background:linear-gradient(#183f56 0 58%,#183e35 58%)}.home-visual:after{content:'';position:absolute;left:0;right:0;bottom:0;height:28%;background:radial-gradient(ellipse at 25% 100%,#64a35a 0 20%,transparent 21%),radial-gradient(ellipse at 80% 100%,#477c48 0 24%,transparent 25%),#28573e}.home-sky i{position:absolute;width:35px;height:9px;border-radius:50%;background:#fff8;filter:blur(2px);animation:homeCloud 9s linear infinite}.home-sky i:nth-child(1){top:28px;left:-20px}.home-sky i:nth-child(2){top:65px;left:70px;animation-delay:-4s}.home-sky i:nth-child(3){top:42px;left:180px;animation-delay:-7s}.home-building{position:absolute;z-index:1;left:50%;bottom:38px;transform:translateX(-50%);font-size:92px;filter:drop-shadow(0 12px 9px #06141988)}.home-sign{position:absolute;z-index:2;right:13px;top:13px;padding:5px 8px;border:1px solid #ddff8c66;border-radius:8px;color:#eaff9c;background:#071c26cc;font-weight:900}.home-visual.workshop{background:linear-gradient(#25506a 0 58%,#21483a 58%)}.home-visual.citadel{background:linear-gradient(#182842 0 58%,#263d34 58%)}.home-overview{padding:4px}.home-overview>small{color:#67e1ca;font-size:8px;font-weight:900;letter-spacing:.12em}.home-overview h3{margin:4px 0;color:#fff;font-size:22px}.home-overview p{margin:0;color:#89a8ad;font-size:11px;line-height:1.65}.home-benefits{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.home-benefits span{padding:6px 8px;border:1px solid #ffffff12;border-radius:8px;color:#c8e3df;background:#092530;font-size:9px}.home-services{display:grid;grid-column:2;grid-template-columns:1fr 1fr;gap:8px}.home-services article{display:grid;grid-template-columns:auto 1fr;gap:7px;padding:12px;border:1px solid #ffffff12;border-radius:12px;background:#09232f}.home-services article>span{grid-row:1/3;font-size:25px}.home-services b,.home-services small{display:block}.home-services b{font-size:11px}.home-services small{color:#78999e;font-size:8px}.home-services button{grid-column:1/-1;padding:8px;border:0;border-radius:8px;color:#06202a;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:800}.home-services button:disabled{color:#719095;background:#173641}.home-upgrade{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px;border:1px solid #dfff7730;border-radius:13px;background:linear-gradient(120deg,#18372f,#0b2831)}.home-upgrade small,.home-upgrade b{display:block}.home-upgrade small{color:#7fb1aa;font-size:8px}.home-upgrade>div>div{display:flex;gap:7px;margin-top:5px}.home-upgrade span{font-size:9px}.home-upgrade .enough{color:#dff66f}.home-upgrade .missing{color:#ff9e91}.home-upgrade button{padding:10px 14px;border:0;border-radius:9px;color:#07222a;background:linear-gradient(135deg,#eaff84,#55d8c2);font-weight:900}.home-upgrade button:disabled{opacity:.45}.home-upgrade.maxed{border-color:#eaff8a55;box-shadow:inset 0 0 22px #dfff7511}@keyframes homeCloud{from{transform:translateX(-55px)}to{transform:translateX(270px)}}@media(max-width:650px){.home-hub{grid-template-columns:1fr}.home-visual{grid-row:auto;min-height:190px}.home-building{font-size:72px}.home-services{grid-column:1}.home-upgrade{display:grid}.home-upgrade button{width:100%}}
@media(max-width:600px){.feature-content{grid-template-columns:1fr;padding:14px}.home-service{grid-column:auto}}

.adventure-actions{display:grid;grid-template-columns:1fr;gap:7px;margin-top:9px}.adventure-actions button{padding:9px 10px;border:1px solid #74e8d62c;border-radius:9px;color:#daf2ed;background:linear-gradient(135deg,#123747,#0a2431);text-align:left}.adventure-actions button:hover{border-color:#65dfcd;color:#efffa1;transform:translateY(-1px)}
.world-event-hud{display:grid;grid-template-columns:auto minmax(0,1.25fr) minmax(170px,.8fr) auto;gap:12px;align-items:center;margin:7px 0 10px;padding:11px 13px;border:1px solid #dff66f52;border-radius:14px;color:#eaf9f5;background:radial-gradient(circle at 5% 50%,#dff66f1c,transparent 28%),linear-gradient(115deg,#173b43,#0b2532);box-shadow:0 10px 24px #0004}.world-event-hud.completed{border-color:#77e4b866;background:linear-gradient(115deg,#153e36,#0b2532)}.world-event-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid #eaff9c70;border-radius:13px;background:#071923;font-size:24px}.world-event-copy{min-width:0}.world-event-copy small,.world-event-copy strong,.world-event-copy p{display:block}.world-event-copy small{color:#dff66f;font-size:9px;letter-spacing:.5px}.world-event-copy strong{overflow:hidden;color:#fff;text-overflow:ellipsis;white-space:nowrap}.world-event-copy p{overflow:hidden;margin:2px 0;color:#8fb0b5;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.world-event-progress{min-width:0}.world-event-progress>div{display:flex;justify-content:space-between;gap:8px;color:#a9cac7;font-size:9px}.world-event-progress progress{width:100%;height:7px}.world-event-progress>small{display:block;margin-top:2px;color:#dff6a1;font-size:9px}.world-event-hud>button{padding:9px 11px;border:0;border-radius:9px;color:#06202a;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:11px;font-weight:700;white-space:nowrap}.world-event-hud>button:disabled{color:#9ed8c6;background:#245044}
.stage-hud{position:absolute;z-index:12;left:18px;right:18px;top:58px;display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,260px) 32px;gap:14px;align-items:center;padding:12px 14px;border:1px solid #efff9e55;border-radius:14px;color:#e9faf5;background:linear-gradient(110deg,#071a25f5,#153c47f2);box-shadow:0 15px 38px #0008;backdrop-filter:blur(13px)}.stage-hud>div:first-child{min-width:0}.stage-hud small,.stage-hud b,.stage-hud span{display:block}.stage-hud small{color:#dff66f;font-size:10px;letter-spacing:1.5px}.stage-hud b{overflow:hidden;color:#fff;text-overflow:ellipsis;white-space:nowrap}.stage-hud span{overflow:hidden;color:#94b7bc;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.stage-time{display:grid;grid-template-columns:60px 1fr;gap:3px 8px;align-items:center}.stage-time strong{grid-row:1/3;color:#f0ff9c;font-size:21px;font-variant-numeric:tabular-nums}.stage-time progress{width:100%;height:8px}.stage-time span{font-size:10px}.stage-hud>button{width:30px;height:30px;border:1px solid #ff879555;border-radius:9px;color:#ffb3bc;background:#581f2c77}
.combat-hud{position:absolute;z-index:13;left:50%;bottom:62px;display:grid;grid-template-columns:34px minmax(130px,230px) auto;gap:10px;align-items:center;width:min(390px,calc(100% - 30px));padding:10px 12px;border:1px solid #ff89945c;border-radius:14px;color:#fff;background:linear-gradient(110deg,#3a1624ed,#102b38ed);box-shadow:0 14px 35px #0009;transform:translateX(-50%);backdrop-filter:blur(12px)}.combat-hud>span{font-size:24px}.combat-hud small,.combat-hud b{display:block}.combat-hud small{color:#ffb1ba;font-size:9px;letter-spacing:1px}.combat-hud progress{width:100%;height:7px}.combat-hud button{padding:7px 10px;border:1px solid #ff9da95c;border-radius:8px;color:#ffd8dd;background:#611f30}.downed-overlay{position:absolute;z-index:25;inset:48px 0 0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:25px;text-align:center;color:#eaf7f5;background:#031018db;backdrop-filter:blur(8px)}.downed-overlay>span{font-size:52px}.downed-overlay h2{margin:8px 0 2px;color:#fff}.downed-overlay p{max-width:420px;color:#9eb8ba}.downed-overlay strong{display:grid;place-items:center;width:58px;height:58px;margin:10px;border:2px solid #dff66f;border-radius:50%;color:#efffa1;font-size:20px}.downed-overlay button{padding:11px 22px;border:0;border-radius:10px;color:#06202a;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:700}.downed-overlay button:disabled{opacity:.4}.quest-card>button{width:100%;margin-top:9px;padding:7px 10px;border:1px solid #5cdec94a;border-radius:8px;color:#06202a;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:700}.quest-card.completed{opacity:.7}.quest-card.completed:before{background:#80e09b}.quest-complete-label{display:block;margin-top:7px;color:#83d5a2;font-size:10px;text-align:right}
.story-hero{grid-column:1/-1;padding:24px;border:1px solid #dff66f2e;border-radius:16px;background:radial-gradient(circle at 80% 0,#65dfcd24,transparent 35%),linear-gradient(135deg,#123b46,#081c29)}.story-hero h3{margin:5px 0;color:#efffa1;font-size:24px}.story-hero p{max-width:680px;color:#b8d1d1;line-height:1.8}.chapter-card,.guide-card,.party-card,.stage-card{padding:16px;border:1px solid #ffffff13;border-radius:14px;background:#081e2a}.chapter-card.done,.stage-card.done{border-color:#77e4b850;background:linear-gradient(145deg,#103a3a,#081e2a)}.chapter-card.locked,.stage-card.locked{opacity:.58}.chapter-no{display:inline-grid;place-items:center;width:34px;height:34px;margin-bottom:10px;border-radius:10px;color:#06202a;background:#62ddcb;font-weight:800}.chapter-card h3,.guide-card h3,.party-card h3,.stage-card h3{margin:0 0 7px;color:#fff}.chapter-card p,.guide-card p,.party-card p,.stage-card p{margin:0;color:#88a9af;line-height:1.65;font-size:12px}.story-status{display:inline-block;margin-top:10px;padding:4px 8px;border-radius:20px;color:#dffb8a;background:#dffb8a14;font-size:10px}.guide-index{display:grid;place-items:center;width:30px;height:30px;margin-bottom:8px;border:1px solid #65dfcd;border-radius:50%;color:#65dfcd;font-weight:700}.stage-meta,.party-member{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid #ffffff0c;color:#bad2d0;font-size:11px}.stage-card button,.party-card button,.party-panel button{padding:7px 10px;border:1px solid #61dccb3b;border-radius:8px;color:#dff4ef;background:#113744}.stage-card button.primary,.party-card button.primary{border:0;color:#06202a;background:linear-gradient(135deg,#65dfcd,#38a8bd);font-weight:700}.stage-card button:disabled{opacity:.4}.party-panel{grid-column:1/-1}.party-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.party-head h3{margin:0;color:#fff}.party-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.party-member{margin:0;padding:10px;border:1px solid #ffffff0d;border-radius:10px;background:#061923}.party-member .online{color:#77e4b8}.party-member .offline{color:#82969a}.party-invites{margin-bottom:12px}.party-chat-box{max-height:170px;overflow:auto;margin-top:12px;padding:10px;border-radius:10px;background:#051620}.party-chat-box div{padding:4px;color:#bcd3d0;font-size:12px}.party-chat-box b{color:#64ddcc}.party-chat-form,.party-create-form{display:flex;gap:7px;margin-top:9px}.party-chat-form input,.party-create-form input{min-width:0;flex:1;padding:9px;border:1px solid #ffffff16;border-radius:8px;color:#fff;background:#061923}.party-danger{color:#ffb3bc!important;border-color:#ff879544!important;background:#581f2c4d!important}
@media(max-width:760px){.stage-hud{left:10px;right:10px;top:52px;grid-template-columns:1fr 30px;gap:7px;padding:10px}.stage-hud>div:first-child span{white-space:normal}.stage-time{grid-column:1/-1;grid-row:2}.stage-hud>button{grid-column:2;grid-row:1}.party-members{grid-template-columns:1fr}.adventure-actions{grid-column:1/-1;grid-template-columns:1fr 1fr}.adventure-actions button:first-child{grid-column:1/-1}}
@media(max-width:760px){.world-event-hud{grid-template-columns:auto 1fr auto;gap:8px;padding:9px}.world-event-icon{width:35px;height:35px;font-size:20px}.world-event-progress{grid-column:1/-1}.world-event-copy p{white-space:normal}.world-event-hud>button{grid-column:3;grid-row:1/3;padding:8px}.world-event-progress>small{display:none}}
@media(max-width:760px){.world-head #objectiveHint{display:block;max-width:55%;overflow:hidden;color:#dff66f;font-size:9px;text-align:right;text-overflow:ellipsis;white-space:nowrap}}
.has-world-event .tutorial-banner{top:150px}
@media(max-width:760px){.has-world-event .tutorial-banner{top:175px}}
.combat-hud{width:min(560px,calc(100% - 30px));grid-template-columns:34px minmax(210px,1fr) auto}.combat-skills{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.combat-skills button{padding:4px 7px;border:1px solid #65dfcd55;border-radius:7px;color:#dff5f0;background:#123b47;font-size:9px}.combat-skills button.queued{border-color:#efff9e;color:#102b32;background:#dff66f;box-shadow:0 0 14px #dff66f55}.combat-skills button:disabled{opacity:.5}
.combat-hud #combatHint{display:block;margin:2px 0;color:#9ec4c4;font-size:9px;font-style:normal}.combat-hud #combatHint.danger{color:#ff9aa7;font-weight:700;animation:timerPulse .8s infinite alternate}
.quest-card.locked{opacity:.48;filter:saturate(.45)}.quest-card.locked:before{background:#71858b}.quest-chapter{display:block;margin-bottom:3px;color:#65dfcd;font-size:8px;font-weight:700;letter-spacing:1px}.quest-lock-reason{display:block;margin-top:8px;padding:6px 8px;border-radius:7px;color:#b9c9c8;background:#061923;font-size:9px}.story-path{grid-column:1/-1;display:grid;gap:7px;padding:16px;border:1px solid #65dfcd35;border-radius:15px;background:#071b26}.story-path>h3{margin:0 0 3px;color:#efffa1}.story-quest{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;padding:10px;border:1px solid #ffffff0d;border-radius:11px;background:#0b2632}.story-quest>span{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;color:#06202a;background:#65dfcd;font-weight:800}.story-quest small,.story-quest b,.story-quest em{display:block}.story-quest small{color:#65dfcd;font-size:8px}.story-quest b{color:#fff}.story-quest p{margin:3px 0;color:#8eacb0;font-size:10px}.story-quest em{color:#dff66f;font-size:9px;font-style:normal}.story-quest.done{border-color:#77e4b850;background:#10352f}.story-quest.locked{opacity:.5}.story-quest.locked>span{color:#b8c7c6;background:#263d43}
.student-inspector-dialog{width:min(850px,96vw);height:min(820px,92vh);padding:0;color:#dff1ed;background:linear-gradient(155deg,#102d3b,#071923);border:1px solid #6ce4d13d}.student-inspector-dialog::backdrop{background:#020a0ee0}.student-inspector-content{display:grid;gap:12px;padding:18px;overflow:auto}.student-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.student-summary>div{padding:11px;border:1px solid #ffffff10;border-radius:10px;background:#061923}.student-summary small,.student-summary b{display:block}.student-summary small{color:#7f9fa5;font-size:9px}.student-summary b{margin-top:3px;color:#efffa1}.student-support-actions{display:flex;gap:8px}.student-support-actions button,.student-progress-editor button,.student-item button{padding:8px 10px;border:1px solid #65dfcd44;border-radius:8px;color:#06202a;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:700}.student-progress-editor,.student-inspector-section{padding:14px;border:1px solid #ffffff10;border-radius:12px;background:#0a2430}.student-progress-editor{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.student-progress-editor h3,.student-inspector-section h3{width:100%;margin:0 0 5px;color:#fff}.student-progress-editor label{color:#a6c0c1;font-size:11px}.student-progress-editor input,.student-item input{width:100px;padding:7px;border:1px solid #ffffff18;border-radius:7px;color:#fff;background:#061923}.student-progress-editor small{width:100%;color:#719096;font-size:9px}.student-items{display:grid;grid-template-columns:1fr 1fr;gap:6px}.student-item{display:grid;grid-template-columns:1fr 85px auto;gap:6px;align-items:center;padding:8px;border-radius:9px;background:#061923}.student-item b,.student-item small{display:block}.student-item small{color:#77989e;font-size:8px}.student-quests{display:grid;grid-template-columns:1fr 1fr;gap:6px}.student-quest{display:grid;grid-template-columns:24px 1fr auto;gap:6px;align-items:center;padding:8px;border-radius:8px;background:#061923}.student-quest>span{color:#79969c}.student-quest b{font-size:10px}.student-quest small{color:#82a2a5}.student-quest.done{color:#eaff9c;background:#12352f}@media(max-width:650px){.student-summary{grid-template-columns:1fr 1fr}.student-items,.student-quests{grid-template-columns:1fr}.student-support-actions{display:grid}.student-progress-editor{align-items:stretch}.student-progress-editor label{display:flex;justify-content:space-between}.student-progress-editor input{width:55%}}
.student-summary em{display:block;margin-top:3px;color:#6e9398;font-size:7px}.student-learning-evidence{padding:14px;border:1px solid #79edcf30;border-radius:12px;background:linear-gradient(140deg,#0b2b32,#091d29)}.student-learning-evidence>div:first-child small{color:#72e6ca;font-size:8px;letter-spacing:.12em}.student-learning-evidence h3{margin:3px 0 10px}.student-competency-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.student-competency-grid article{display:flex;gap:7px;padding:8px;border:1px solid #ffffff10;border-radius:9px;background:#061923}.student-competency-grid article>span{font-size:20px}.student-competency-grid small,.student-competency-grid b,.student-competency-grid em{display:block}.student-competency-grid small{color:#8eb1b3;font-size:7px}.student-competency-grid progress{width:100%;height:5px}.student-competency-grid em{color:#66888c;font-size:7px}.student-learning-list{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:9px}.student-learning-row{display:grid;grid-template-columns:22px 1fr auto;gap:6px;padding:8px;border-radius:8px;background:#061923}.student-learning-row>span{color:#718d93}.student-learning-row b,.student-learning-row small,.student-learning-row em{display:block}.student-learning-row b{font-size:9px}.student-learning-row small,.student-learning-row em{color:#739499;font-size:7px}.student-learning-row.done{background:#12372f}.student-learning-row.done>span{color:#dff66f}.student-learning-row.needs-review{background:#36291b}.student-learning-row.needs-review>span{color:#ffc16b}.student-learning-evidence details{margin-top:9px}.student-learning-evidence summary{cursor:pointer;color:#9fc4c5;font-size:9px}.student-learning-evidence ul{margin:7px 0 0;padding:0;list-style:none}.student-learning-evidence li{display:flex;gap:7px;padding:6px;border-bottom:1px solid #ffffff0c}.student-learning-evidence li>span{color:#ff887c}.student-learning-evidence li.correct>span{color:#dff66f}.student-learning-evidence li b,.student-learning-evidence li small{display:block;font-size:8px}.student-learning-evidence li small{color:#77989e}@media(max-width:760px){.admin-competency-metrics{grid-template-columns:1fr 1fr}.admin-difficult{grid-template-columns:1fr}.admin-difficult ol{grid-template-columns:1fr}.student-competency-grid{grid-template-columns:1fr 1fr}.student-learning-list{grid-template-columns:1fr}}
.stage-time strong.urgent{color:#ff8f9b;animation:timerPulse .8s infinite alternate}@keyframes timerPulse{to{transform:scale(1.08);text-shadow:0 0 12px #ff6070}}
.sound-toggle{display:grid!important;place-items:center;min-width:34px!important;width:34px;height:34px;padding:0!important;border:1px solid #65dfcd3b!important;border-radius:10px!important;color:#dff8f2!important;background:#12313e!important;font-size:16px}.sound-toggle.muted{opacity:.62;filter:saturate(.4)}
.settings-button{display:grid!important;place-items:center;min-width:34px;width:34px;height:34px;padding:0!important;font-size:15px}.settings-panel{grid-column:1/-1;display:grid;gap:13px}.settings-section{padding:18px;border:1px solid #ffffff12;border-radius:15px;background:linear-gradient(145deg,#0b2733,#071923)}.settings-section h3{margin:0 0 13px;color:#efffa1}.setting-range{display:block;margin:13px 0}.setting-range>span{display:flex;justify-content:space-between;margin-bottom:7px;color:#d8eae7}.setting-range output{color:#65dfcd;font-variant-numeric:tabular-nums}.setting-range input{width:100%;accent-color:#5edbca}.settings-sound-test{width:100%;padding:10px;border:1px solid #63dfcd42;border-radius:9px;color:#dff6f1;background:#103744}.setting-row{position:relative;display:flex;justify-content:space-between;gap:18px;align-items:center;padding:11px 0;border-bottom:1px solid #ffffff0c;cursor:pointer}.setting-row:last-child{border-bottom:0}.setting-row span b,.setting-row span small{display:block}.setting-row span small{margin-top:3px;color:#819fa5;font-size:11px}.setting-row input{position:absolute;opacity:0}.setting-row i{position:relative;flex:0 0 46px;width:46px;height:25px;border-radius:20px;background:#304851;transition:.2s}.setting-row i:after{content:'';position:absolute;left:3px;top:3px;width:19px;height:19px;border-radius:50%;background:#a6b8ba;transition:.2s}.setting-row input:checked+i{background:#38bcae}.setting-row input:checked+i:after{left:24px;background:#efffa1}.setting-row input:focus-visible+i{outline:2px solid #fff;outline-offset:2px}.settings-footer{display:flex;justify-content:flex-end;gap:9px}.settings-footer button{padding:10px 15px;border:1px solid #63dfcd35;border-radius:9px;color:#dff5f0;background:#10313e}.settings-footer button.primary{border:0;background:linear-gradient(135deg,#5ddcca,#2e9db8)}.settings-note{text-align:right;color:#78979d}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.low-effects .panel,.low-effects canvas,.low-effects .topbar,.low-effects dialog{box-shadow:none!important;backdrop-filter:none!important}.low-effects .game-view{background:#081c28!important}
.connection-status{display:flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid #74e6d333;border-radius:20px;color:#aee7dc;background:#071c26;font-size:11px;white-space:nowrap}.connection-status i{width:7px;height:7px;border-radius:50%;background:#6fe3a9;box-shadow:0 0 8px #6fe3a9}.connection-status.connecting i{background:#ffd76b;box-shadow:0 0 8px #ffd76b;animation:pulse 1s infinite}.connection-status.offline{color:#ffc0c7;border-color:#ff788744}.connection-status.offline i{background:#ff6579;box-shadow:0 0 8px #ff6579}
@media(max-width:760px){.connection-status{position:fixed;z-index:83;right:12px;top:calc(8px + env(safe-area-inset-top));width:11px;height:11px;justify-content:center;padding:0;border:0;background:transparent;pointer-events:none}.connection-status span{display:none}}
.lab-hero{grid-column:1/-1;display:flex;gap:15px;align-items:center;padding:20px;border:1px solid #eaff9744;border-radius:17px;background:radial-gradient(circle at 8% 50%,#63dfcd22,transparent 24%),linear-gradient(135deg,#123d47,#081e2a)}.npc-orb{display:grid;place-items:center;flex:0 0 62px;width:62px;height:62px;border:2px solid #65dfcd;border-radius:21px;background:#061923;font-size:32px;box-shadow:0 0 30px #63dfcd2f}.lab-hero h3{margin:0;color:#efffa1;font-size:22px}.lab-hero p{margin:5px 0 0;color:#a9c8c8;line-height:1.65}.competency-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.competency-card{display:flex;gap:9px;align-items:center;padding:11px;border:1px solid #ffffff10;border-radius:12px;background:#071b26}.competency-card>span{font-size:21px}.competency-card div{min-width:0;flex:1}.competency-card b,.competency-card small{display:block}.competency-card b{overflow:hidden;color:#dff2ee;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.competency-card small{color:#799ba2;font-size:9px}.competency-card progress{width:100%;height:5px}.learning-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.learning-card{padding:15px;border:1px solid #ffffff12;border-radius:14px;background:linear-gradient(145deg,#0b2835,#071923)}.learning-card.done{border-color:#76dfac55;background:linear-gradient(145deg,#10383a,#071923)}.learning-card-head{display:flex;gap:9px;align-items:center}.learning-card-head>span{font-size:23px}.learning-card-head small{color:#e8f77f;font-size:9px}.learning-card h3{margin:2px 0;color:#fff}.learning-card p{min-height:42px;margin:9px 0;color:#91afb4;font-size:12px;line-height:1.55}.learning-meta{display:flex;justify-content:space-between;gap:7px;color:#74aaa9;font-size:10px}.learning-card>button{width:100%;margin-top:10px;padding:8px;border:1px solid #61dccb3b;border-radius:8px;color:#dff4ef;background:#113744}.learning-card:not(.done)>button{border:0;color:#06202a;background:linear-gradient(135deg,#65dfcd,#38a8bd);font-weight:700}.challenge-scene{grid-column:1/-1}.npc-dialog{display:flex;gap:13px;align-items:center;padding:18px;border:1px solid #dff66f39;border-radius:15px;background:linear-gradient(135deg,#123943,#081d29)}.npc-dialog>span{font-size:35px}.npc-dialog p{margin:0;color:#e8f5f1;font-size:16px;line-height:1.7}.challenge-help{color:#8facb1}.choice-options{display:grid;gap:8px;margin:14px 0}.choice-options label{cursor:pointer}.choice-options input{position:absolute;opacity:0}.choice-options span{display:flex;gap:10px;align-items:center;padding:13px;border:1px solid #ffffff13;border-radius:11px;color:#c9dfdc;background:#071a25}.choice-options span b{display:grid;place-items:center;flex:0 0 29px;width:29px;height:29px;border-radius:9px;color:#65dfcd;background:#123744}.choice-options input:checked+span{border-color:#65dfcd;background:#123b44;box-shadow:0 0 0 2px #65dfcd1f}.sequence-answer{display:grid;gap:6px;min-height:62px;padding:10px;border:1px dashed #65dfcd55;border-radius:12px;background:#061721}.sequence-answer>span{display:flex;gap:9px;align-items:center;padding:8px;border-radius:8px;color:#dceeea;background:#102f3b}.sequence-answer>span b{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;color:#06202a;background:#dff66f}.sequence-answer>small{margin:auto;color:#668a91}.sequence-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0}.sequence-options button,.sequence-reset{padding:10px;border:1px solid #61dccb3b;border-radius:8px;color:#dff4ef;background:#113744}.sequence-options button:disabled{opacity:.35}.sequence-reset{background:#371f35;border-color:#e18aca44}.challenge-actions{display:flex;justify-content:space-between;gap:8px;margin-top:15px}.challenge-actions button{padding:10px 15px;border:1px solid #61dccb3b;border-radius:9px;color:#dff4ef;background:#113744}.challenge-actions .primary{border:0;background:linear-gradient(135deg,#dff66f,#65dfcd);color:#06202a}.challenge-feedback{margin-top:13px;padding:14px;border-radius:12px}.challenge-feedback.correct{border:1px solid #73e3ad66;background:#173c364f}.challenge-feedback.wrong{border:1px solid #ff829266;background:#4a20284f}.challenge-feedback b{color:#fff}.challenge-feedback p{margin:5px 0;color:#bed4d1;line-height:1.6}.challenge-feedback small{color:#efffa1}.daily-hero{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:19px;border:1px solid #eaff9742;border-radius:16px;background:linear-gradient(135deg,#173f45,#081e2a)}.daily-hero.completed{background:linear-gradient(135deg,#274c35,#081e2a)}.daily-hero h3{margin:2px 0;color:#efffa1}.daily-hero p,.daily-hero small{margin:0;color:#9ebbbb}.daily-hero>span{font-size:35px;color:#efffa1}.daily-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.daily-card{display:flex;gap:10px;align-items:center;padding:13px;border:1px solid #ffffff12;border-radius:12px;background:#071b26}.daily-card.done{border-color:#73e3ad55;background:#12362f}.daily-card>span{font-size:24px}.daily-card div{min-width:0;flex:1}.daily-card b,.daily-card small{display:block}.daily-card small{color:#8ba9ae}.daily-card progress{width:100%;height:6px}.badge-section{grid-column:1/-1}.badge-section h3{color:#fff}.badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.badge-card{display:flex;gap:11px;align-items:center;padding:13px;border:1px solid #ffffff10;border-radius:12px;background:#071a25}.badge-card>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#132f39;font-size:23px}.badge-card b,.badge-card small{display:block}.badge-card small{margin-top:3px;color:#829fa4}.badge-card.earned{border-color:#eaff9755}.badge-card.earned>span{background:#dff66f20;filter:none}.badge-card.locked{opacity:.48}.badge-card.locked>span{filter:grayscale(1)}
.leaderboard-loading{grid-column:1/-1;display:grid;place-items:center;min-height:260px;text-align:center}.leaderboard-loading span{font-size:62px;filter:drop-shadow(0 10px 20px #f5d86c45);animation:timerPulse 1s infinite alternate}.leaderboard-loading b{margin-top:12px;color:#efffa1;font-size:20px}.leaderboard-loading small{color:#86a5aa}.leaderboard-tabs{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;padding:5px;border:1px solid #ffffff10;border-radius:13px;background:#061923}.leaderboard-tabs button{padding:10px;border:0;border-radius:9px;color:#8eacb1;background:transparent}.leaderboard-tabs button.active{color:#06202a;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:700}.my-ranking{grid-column:1/-1;display:grid;grid-template-columns:auto 50px 1fr auto;gap:12px;align-items:center;padding:12px 16px;border:1px solid #64ddcb47;border-radius:13px;color:#bad3d0;background:#10323e}.my-ranking>span{font-size:11px}.my-ranking>b{color:#efffa1;font-size:20px}.my-ranking div b,.my-ranking div small{display:block}.my-ranking div small{color:#82a3a8}.my-ranking>strong{color:#efffa1}.my-ranking.test-note{display:block;text-align:center;color:#8ea9ad}.podium{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;align-items:end;padding:24px 12px 0;border-radius:18px;background:radial-gradient(circle at 50% 0,#eaff9722,transparent 52%),linear-gradient(180deg,#123640,#071923)}.podium-place{display:flex;min-width:0;flex-direction:column;align-items:center;padding:14px 8px;border:1px solid #ffffff12;border-radius:15px 15px 0 0;background:#0b2733;text-align:center}.podium-place.rank-1{min-height:220px;padding-top:18px;border-color:#f5d96b6e;background:linear-gradient(180deg,#594f283d,#0b2733)}.podium-place.rank-2{min-height:185px}.podium-place.rank-3{min-height:165px}.podium-place.empty{opacity:0}.podium-medal{font-size:29px}.podium-avatar{display:grid;place-items:center;width:54px;height:54px;margin:6px 0;border:2px solid #65dfcd;border-radius:17px;color:#06202a;background:linear-gradient(135deg,#65dfcd,#dff66f);font-size:22px;font-weight:800}.rank-1 .podium-avatar{width:66px;height:66px;border-color:#f5d96b;box-shadow:0 0 28px #f5d96b2f}.podium-place>b{overflow:hidden;max-width:100%;color:#fff;text-overflow:ellipsis;white-space:nowrap}.podium-place>small,.podium-place div+small{color:#86a4a9}.podium-place strong{margin-top:7px;color:#efffa1;font-size:20px}.ranking-list{grid-column:1/-1;display:grid;gap:5px}.ranking-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto 85px;gap:10px;align-items:center;padding:10px 13px;border:1px solid #ffffff0c;border-radius:11px;background:#071a25}.ranking-row.is-me{border-color:#65dfcd;background:#10323e}.rank-number{color:#87a5aa;font-size:17px;font-weight:800;text-align:center}.ranking-row div b,.ranking-row div small{display:block}.ranking-row div b{color:#dfefec}.ranking-row div small{color:#75969d;font-size:10px}.rank-details{color:#7fa4a7;font-size:10px}.ranking-row>strong{color:#dff66f;text-align:right}.empty-ranking{text-align:center;color:#809fa4}.score-formula{grid-column:1/-1;padding:13px;border:1px dashed #ffffff18;border-radius:11px;color:#9fbbbd;font-size:11px;text-align:center}.score-formula b{color:#eaf5f2}.score-formula small{display:block;margin-top:4px;color:#6f9298}
.profession-intro{grid-column:1/-1;padding:18px 20px;border:1px solid #eaff9740;border-radius:16px;background:radial-gradient(circle at 95% 0,#bdf66e1c,transparent 38%),linear-gradient(135deg,#123944,#091e2a)}.profession-intro b{display:block;color:#efffa1;font-size:18px}.profession-intro p{margin:7px 0 0;color:#a8c5c6;line-height:1.7}.profession-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profession-card{display:grid;grid-template-columns:58px minmax(0,1fr);gap:13px;padding:16px;border:1px solid #ffffff13;border-radius:16px;background:linear-gradient(145deg,#0b2733,#071923);transition:.2s}.profession-card:hover{transform:translateY(-2px);border-color:#5ddcca55;box-shadow:0 13px 28px #0004}.profession-card.selected{border-color:#dff66f7a;background:radial-gradient(circle at 0 0,#dff66f17,transparent 42%),linear-gradient(145deg,#12363b,#071923);box-shadow:inset 0 0 0 1px #dff66f1e}.profession-icon{display:grid;place-items:center;width:54px;height:54px;border:1px solid #69e2d04a;border-radius:17px;background:#5cd9c514;font-size:27px}.profession-copy{min-width:0}.profession-title{display:flex;justify-content:space-between;gap:8px;align-items:start}.profession-title h3{margin:1px 0 5px;color:#fff}.profession-current{padding:4px 7px;border-radius:20px;color:#eaff9c;background:#dff66f17;font-size:9px;white-space:nowrap}.profession-copy p{min-height:37px;margin:0 0 10px;color:#8eadb2;font-size:12px;line-height:1.55}.profession-bonuses{display:flex;gap:5px;flex-wrap:wrap}.profession-bonuses span{padding:4px 7px;border:1px solid #58d9c52b;border-radius:20px;color:#bce1db;background:#061a24;font-size:10px}.profession-action{grid-column:2;display:flex;justify-content:flex-end;align-items:center;margin-top:2px}.profession-action button{padding:8px 13px;border:1px solid #5cddcb42;border-radius:9px;color:#dff6f1;background:#103744}.profession-action button.primary{border:0;color:#06202a;background:linear-gradient(135deg,#dff66f,#76d899)}.profession-action button:disabled{opacity:.55}.profession-action small{color:#718e94}
@media(max-width:600px){.profession-grid{grid-template-columns:1fr}.profession-card{grid-template-columns:48px minmax(0,1fr);padding:13px}.profession-icon{width:46px;height:46px;border-radius:14px;font-size:23px}.profession-title{display:block}.profession-current{display:inline-block;margin-bottom:6px}.profession-action{grid-column:1/-1}.profession-action button{width:100%}.settings-footer{display:grid;grid-template-columns:1fr}.settings-footer button{width:100%}.settings-note{text-align:center}}
@media(max-width:760px){body.in-game{padding-bottom:68px}.in-game .topbar nav{position:fixed;z-index:80;left:8px;right:8px;bottom:7px;display:grid!important;grid-template-columns:repeat(4,1fr);padding:6px!important;border:1px solid #72e3d04a!important;border-radius:16px!important;background:#051923f2!important;box-shadow:0 8px 32px #000b;backdrop-filter:blur(16px)}.in-game .topbar nav button{min-width:0;padding:10px 3px!important;font-size:12px}.in-game .topbar nav button.active{box-shadow:0 4px 14px #3cd7c044}}
@media(max-width:760px){.game-layout{display:flex;flex-direction:column}.world-wrap{order:1}.left-panel{order:2}.right-stack{order:3}.competency-grid{grid-template-columns:1fr 1fr}.learning-grid,.badge-grid{grid-template-columns:1fr}.daily-grid{grid-template-columns:1fr}.sequence-options{grid-template-columns:1fr}.lab-hero{align-items:flex-start}.npc-orb{flex-basis:48px;width:48px;height:48px;font-size:24px}.challenge-actions{display:grid;grid-template-columns:1fr}.challenge-actions button{width:100%}.podium{gap:4px;padding-left:4px;padding-right:4px}.podium-place{padding-left:3px;padding-right:3px}.podium-place>b{font-size:11px}.podium-place>small{font-size:8px}.podium-avatar{width:43px;height:43px}.rank-1 .podium-avatar{width:52px;height:52px}.ranking-row{grid-template-columns:30px minmax(0,1fr) 65px}.rank-details{display:none}.my-ranking{grid-template-columns:auto 42px 1fr}.my-ranking>strong{grid-column:1/-1;text-align:right}}

/* Full viewport game layout */
.fullscreen-button{min-width:38px;font-size:18px;line-height:1}.fullscreen-button[aria-pressed="true"]{color:#06202a!important;background:#65dfcd!important}
.mobile-menu-button{display:none}
@media(min-width:1101px){body.in-game{height:100vh;overflow:hidden}.in-game .game-view{height:100vh;min-height:0;overflow:hidden}.in-game .game-layout{width:100%;height:calc(100vh - 72px);max-width:none;margin:0;grid-template-columns:clamp(220px,17vw,290px) minmax(0,1fr) clamp(290px,22vw,360px);align-items:stretch}.in-game .left-panel{height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#54cdbb55 transparent}.in-game .world-wrap{display:flex;min-height:0;height:100%;flex-direction:column}.in-game .world-head,.in-game .nearby{flex:0 0 auto}.in-game canvas{flex:1 1 0;height:0;min-height:0;aspect-ratio:auto}.in-game .right-stack{height:100%;max-height:none}.in-game .quests{display:flex;min-height:0;flex-direction:column}.in-game #quests{min-height:0;overflow-y:auto}}
@media(max-width:760px){.fullscreen-button{display:none}}

/* Reliable movement controls on every device */
.in-game .mobile-controls{display:grid;place-items:center;flex:0 0 auto;margin-top:7px;user-select:none;touch-action:none}.in-game .mobile-controls>div{display:flex;gap:7px}.in-game .mobile-controls button{width:48px;height:38px;border:1px solid #55dcca55;border-radius:10px;color:#dff7f1;background:#0b2b38e8;box-shadow:0 5px 14px #0010194d}.in-game .mobile-controls button:active{color:#06202a;background:#65dfcd;transform:scale(.94)}

/* Clear next-step guidance */
.help-button{min-width:38px;color:#08212a!important;background:linear-gradient(135deg,#dff66f,#65dfcd)!important;font-weight:900}.tutorial-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;width:min(540px,calc(100% - 36px));max-width:none;padding:14px 15px 14px 52px}.guide-copy{min-width:0}.guide-kicker{display:block;margin-bottom:2px;color:#6fe1d0;font-size:9px;font-weight:800;letter-spacing:1.4px}.tutorial-banner small,.tutorial-banner em{display:block}.tutorial-banner small{line-height:1.45}.tutorial-banner em{margin-top:5px;color:#7fa8ad;font-size:9px;font-style:normal}.guide-action{min-width:96px;padding:9px 11px;border:0;border-radius:9px;color:#08222a;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:11px;font-weight:800}.guide-progress{height:4px;margin-top:8px;overflow:hidden;border-radius:8px;background:#ffffff18}.guide-progress span{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#65dfcd,#dff66f)}.onboarding-active .left-panel .feature-actions,.onboarding-active .left-panel .adventure-actions{display:none}.quick-start-hero{grid-column:1/-1;display:flex;gap:14px;align-items:center;padding:18px;border:1px solid #dff66f45;border-radius:15px;background:linear-gradient(135deg,#153d45,#081e29)}.quick-start-hero>span{font-size:40px}.quick-start-hero h3,.quick-start-hero p,.quick-step h3,.quick-step p{margin:0}.quick-start-hero h3{color:#efffa1}.quick-start-hero p,.quick-step p{margin-top:5px;color:#94b4b7;line-height:1.6}.quick-step{display:flex;gap:12px;padding:15px;border:1px solid #ffffff11;border-radius:13px;background:#071b26}.quick-step>b{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;color:#06202a;background:#65dfcd}.quick-step h3{color:#fff;font-size:14px}.quick-step p{font-size:11px}@media(max-width:760px){.tutorial-banner{grid-template-columns:1fr;padding-right:12px}.guide-action{width:100%}.onboarding-active .left-panel .feature-actions,.onboarding-active .left-panel .adventure-actions{display:none}}

/* Assessment integrity */
.attempt-policy{margin-bottom:10px;padding:9px 12px;border:1px solid #eaff9740;border-radius:10px;color:#efffa1;background:#dff66f0d;font-size:11px}.challenge-feedback #retryChallenge{width:100%;margin-top:10px;padding:9px;border:1px solid #65dfcd55;border-radius:9px;color:#dff5f0;background:#103744}.challenge-feedback #retryChallenge:disabled{opacity:.65;cursor:wait}.choice-options input:disabled+span,.sequence-options button:disabled,.sequence-reset:disabled{cursor:not-allowed;opacity:.55}

/* Action battle */
.combat-hud{bottom:18px;width:min(720px,calc(100% - 24px));grid-template-columns:42px minmax(250px,1fr) 190px;gap:12px;padding:12px;border-color:#ff8c9d66;background:linear-gradient(115deg,#3b1424f5,#102c39f5 48%,#071923f5)}
.combat-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid #ff839555;border-radius:13px;background:#651d32;font-size:24px}
.combat-main{min-width:0}.combat-main>small{color:#ff9caf;letter-spacing:1.6px}.combat-main>b{font-size:15px}.combat-main progress{display:block;height:8px;margin-top:5px}
.combat-readout{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:5px}.combat-readout strong{color:#efff9e;font-size:11px;letter-spacing:.8px}.combat-readout strong.finisher{color:#fff36f;text-shadow:0 0 12px #fff36f;animation:comboReady .45s infinite alternate}.combat-readout strong.counter-ready{color:#70f5ff;text-shadow:0 0 14px #4cecff;animation:counterReady .28s infinite alternate}.combat-readout span{overflow:hidden;color:#9ec4c4;font-size:9px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.combat-readout span.danger{color:#ff8ca0;font-weight:800}
.combat-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.combat-actions button{display:grid!important;grid-template-columns:auto 1fr;gap:0 5px;align-items:center;min-width:0;padding:7px!important;border:1px solid #63dfcd55!important;border-radius:10px!important;color:#eafff9!important;background:linear-gradient(145deg,#174655,#0b2935)!important;box-shadow:0 5px 14px #0005;touch-action:manipulation}.combat-actions button>span{grid-row:1/3;font-size:17px}.combat-actions button>b{font-size:10px}.combat-actions kbd{color:#70acae;font:700 7px Tahoma}.combat-actions button:active{transform:scale(.95)}.combat-actions button:disabled{opacity:.45}.combat-actions #combatAttack:not(:disabled){border-color:#efff9e88!important;background:linear-gradient(145deg,#527236,#173b3b)!important}.combat-actions #combatAttack.counter-ready:not(:disabled){border-color:#6ff6ff!important;background:linear-gradient(145deg,#147c86,#174657)!important;box-shadow:0 0 20px #38e9ff77;animation:combatGlow .28s infinite alternate}.combat-actions #combatDodge.danger:not(:disabled){border-color:#ff526c!important;background:linear-gradient(145deg,#81233b,#351727)!important;box-shadow:0 0 18px #ff405d88;animation:combatGlow .3s infinite alternate}.combat-actions #stopCombat{grid-column:1/-1;display:block!important;padding:4px!important;border-color:#ffffff18!important;color:#9ab7b8!important;background:#071923!important;font-size:8px}
.combat-no-skill{color:#759b9f!important;font-size:8px!important}.hit-shake{animation:hitShake .22s linear}.dodge-flash{animation:dodgeFlash .3s ease-out}
@keyframes dodgeFlash{0%{filter:brightness(1)}35%{filter:brightness(1.55) saturate(1.35)}100%{filter:brightness(1)}}
@keyframes comboReady{to{transform:scale(1.08)}}@keyframes counterReady{to{transform:scale(1.06);filter:brightness(1.2)}}@keyframes combatGlow{to{filter:brightness(1.24)}}@keyframes hitShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}50%{transform:translateX(6px)}75%{transform:translateX(-3px)}}
@media(max-width:760px){.combat-hud{position:fixed;z-index:90;left:6px;right:6px;bottom:68px;width:auto;grid-template-columns:1fr 150px;gap:8px;padding:9px;transform:none}.combat-icon{display:none}.combat-main>b{font-size:12px}.combat-main #combatHint{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combat-readout span{display:none}.combat-skills{max-height:28px;overflow:auto}.combat-actions{align-self:center}.combat-actions kbd{display:none}.combat-actions button{min-height:42px;padding:6px!important}.combat-actions #stopCombat{min-height:20px}.in-game .mobile-controls{padding-bottom:4px}}

/* CODE QUEST story gateway */
.login-view{grid-template-columns:minmax(0,1.28fr) minmax(390px,.72fr);background:#050f1b}
.login-art{isolation:isolate;display:flex;min-height:100vh;flex-direction:column;justify-content:center;padding:6vh clamp(34px,6vw,104px);background-image:linear-gradient(90deg,#03101aeb 0,#071725b8 45%,#07172538 78%),linear-gradient(0deg,#030b13d9 0,transparent 46%),url('ui/login-world-v2.webp');background-position:center;background-size:cover}
.login-art:after{content:'';position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 58% 52%,#49ddd025,transparent 26%);pointer-events:none}
.login-art-glow{position:absolute;z-index:-1;left:8%;top:12%;width:220px;height:220px;border-radius:50%;background:#35d8ce1c;filter:blur(30px)}
.login-art>.brand-mark,.login-art>.eyebrow,.login-art>h1,.login-art>.lead,.login-story-stats,.login-callout,.login-art>.course{position:relative;z-index:2}
.login-art .brand-mark{width:58px;height:58px;border-color:#7af4df;color:#dffff6;background:#061c29b5;box-shadow:0 0 35px #45dfcc42,inset 0 0 0 4px #42d6cc16;backdrop-filter:blur(10px)}
.login-art>.eyebrow{margin:22px 0 0;color:#7de8dc;text-shadow:0 2px 12px #001018}
.login-art h1{margin:3vh 0 22px;font-size:clamp(66px,7.5vw,128px);line-height:.78;text-shadow:0 12px 40px #000b}
.login-art h1 span{color:#87f4e1;-webkit-text-stroke:0;text-shadow:0 0 28px #45dfcc59}
.login-art .lead{max-width:650px;margin:0;color:#d8ede9;font-size:clamp(16px,1.25vw,21px);text-shadow:0 3px 16px #00101a}
.login-story-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.login-story-stats span{display:flex;align-items:baseline;gap:6px;padding:8px 12px;border:1px solid #8ff3df33;border-radius:100px;color:#b9d7d3;background:#061923a8;font-size:11px;backdrop-filter:blur(12px)}.login-story-stats b{color:#efffa1;font-size:17px}
.login-callout{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;width:min(470px,100%);margin-top:14px;padding:14px 16px;border:1px solid #eaff9742;border-radius:15px;background:linear-gradient(135deg,#102f3bd9,#081923b8);box-shadow:0 15px 35px #0005;backdrop-filter:blur(14px)}.login-callout small{grid-row:1/3;align-self:center;padding:6px 9px;border-radius:8px;color:#112b29;background:#efffa1;font-size:9px;font-weight:900;letter-spacing:1px}.login-callout b{color:#fff}.login-callout span{color:#86b3b4;font-size:10px}
.login-art .course{left:clamp(34px,6vw,104px);bottom:22px;color:#8fb7b7}.login-art .world-preview{display:none}
.login-panel{position:relative;padding:28px;background:radial-gradient(circle at 50% 20%,#174050 0,#071a27 45%,#040f18 100%)}.login-panel:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#7fe9db08 1px,transparent 1px),linear-gradient(90deg,#7fe9db08 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(180deg,#000,transparent 86%)}
.login-panel .login-card{position:relative;width:min(450px,100%);padding:36px;border:1px solid #89ebdc32;color:#eaf8f5;background:linear-gradient(155deg,#12313edb,#071923eb);box-shadow:0 30px 80px #0009,inset 0 1px #ffffff12;backdrop-filter:blur(20px)}.login-panel .login-card:before{content:'';position:absolute;top:0;left:32px;right:32px;height:2px;background:linear-gradient(90deg,transparent,#65dfcd,transparent)}
.login-panel .login-card h2{color:#fff}.login-panel .login-card .muted{color:#8fb0b3}.login-panel .login-card label{color:#c9dfdc}.login-panel .login-card input{border-color:#ffffff1f;color:#fff;background:#04151f}.login-panel .login-card input::placeholder{color:#54777d}.login-panel .login-card input:focus{border-color:#65dfcd;box-shadow:0 0 0 3px #65dfcd1d}
.login-panel .pin-dots i{border-color:#63858a}.login-panel .pin-dots i.filled{border-color:#efffa1;background:#efffa1;box-shadow:0 0 14px #efffa177}.login-panel .pin-pad button{border-color:#ffffff16;color:#def0ed;background:#0c2a36;box-shadow:inset 0 1px #ffffff0b}.login-panel .pin-pad button:hover{border-color:#65dfcd;color:#09252c;background:#65dfcd}.login-panel .login-card .primary{padding:14px 18px;background:linear-gradient(135deg,#dff66f,#65dfcd);color:#09262c;box-shadow:0 10px 28px #50d8c72b}.login-panel .link-btn{color:#69dbcf}.login-panel .admin-toggle{color:#728f94}.login-panel .known-device{color:#bee0da;background:#65dfcd12}
.login-panel .login-sound-toggle{border-color:#65dfcd35;color:#dff2ef;background:linear-gradient(135deg,#10333e,#0a222e);box-shadow:0 8px 22px #0003}.login-panel .login-sound-toggle small{color:#7d9fa4}

/* Adventure control center */
.settings-panel{gap:14px}.settings-hero{grid-column:1/-1;display:flex;gap:14px;align-items:center;padding:19px;border:1px solid #72e6d33b;border-radius:17px;background:radial-gradient(circle at 8% 50%,#65dfcd26,transparent 24%),linear-gradient(135deg,#123b47,#071d29);box-shadow:0 18px 38px #0003}.settings-orb{display:grid;place-items:center;flex:0 0 58px;width:58px;height:58px;border:1px solid #65dfcd6b;border-radius:18px;background:#061923;font-size:28px;box-shadow:0 0 28px #65dfcd30}.settings-hero div:nth-child(2){min-width:0;flex:1}.settings-hero small{color:#6fe0d1;font-size:9px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase}.settings-hero h3{margin:3px 0;color:#fff;font-size:21px}.settings-hero p{margin:0;color:#8faeb2;font-size:11px}.settings-device{padding:6px 10px;border:1px solid #ffffff17;border-radius:30px;color:#dff66f;background:#061923;font-size:9px;font-weight:800}
.settings-presets{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.settings-presets button{display:grid;grid-template-columns:34px 1fr;gap:1px 9px;align-items:center;padding:11px;text-align:left;border:1px solid #ffffff12;border-radius:12px;color:#d7eae7;background:#071b26}.settings-presets button>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#12323d;font-size:18px}.settings-presets b,.settings-presets small{display:block}.settings-presets small{color:#79999e;font-size:9px}.settings-presets button.active{border-color:#dff66f70;background:linear-gradient(135deg,#173c3e,#0a2631);box-shadow:inset 0 0 0 1px #dff66f18}.settings-presets button.active>span{background:#dff66f;color:#112a29}
.settings-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:12px}.settings-section{height:100%;padding:17px;background:linear-gradient(145deg,#0d2c38,#061923);box-shadow:inset 0 1px #ffffff09}.settings-section h3{display:flex;gap:8px;align-items:center}.settings-section h3>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#65dfcd13}.setting-range input{height:7px}.settings-sound-test{margin-top:7px;background:linear-gradient(135deg,#123d48,#0c2835)}.settings-footer{grid-column:1/-1;padding-top:2px}.settings-footer .primary{min-width:190px}.settings-note{display:none}
@media(max-width:900px){.login-view{grid-template-columns:1fr 430px}.login-art{padding-left:36px;padding-right:36px}.login-art .course{left:36px}.login-callout{display:none}}
@media(max-width:760px){.login-view{display:block;background:#071923}.login-art{min-height:42vh;padding:27px 22px 34px;background-position:68% center}.login-art:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#071923 0,transparent 52%),linear-gradient(90deg,#03111bd9,transparent)}.login-art .brand-mark{width:44px;height:44px;font-size:16px}.login-art>.eyebrow{margin-top:13px;font-size:9px}.login-art h1{margin:18px 0 13px;font-size:55px;letter-spacing:-4px}.login-art .lead{max-width:310px;font-size:13px;line-height:1.5}.login-story-stats{margin-top:15px}.login-story-stats span{padding:5px 8px;font-size:8px}.login-story-stats b{font-size:12px}.login-art .course{display:none}.login-panel{padding:0 12px 18px;background:#071923}.login-panel .login-card{margin-top:-10px;padding:25px 19px;border-radius:21px}.login-panel .login-card h2{font-size:27px}.settings-grid{grid-template-columns:1fr}.settings-presets{grid-template-columns:1fr}.settings-presets button{min-height:54px}.settings-hero{align-items:flex-start}.settings-device{display:none}}

/* Keep the game world readable at desktop resolutions */
.quest-focus{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;margin:8px 12px 4px;padding:10px 11px;border:1px solid #dff66f38;border-radius:11px;background:linear-gradient(135deg,#173b42,#0a222d)}
.quest-focus small,.quest-focus b{display:block}.quest-focus small{color:#79aaa9;font-size:9px}.quest-focus b{color:#efffa1;font-size:12px}.quest-focus button{grid-column:2;grid-row:1/3;padding:7px 9px;border:1px solid #65dfcd45;border-radius:8px;color:#d9f4ef;background:#0b2b36;font-size:9px}
@media(min-width:1101px){
 .in-game .world-wrap{align-items:stretch;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#54cdbb55 transparent}
 .in-game .world-wrap>*{flex:0 0 auto}
 .in-game canvas{display:block;flex:0 0 auto;width:min(100%,calc((100vh - 485px)*1.6));height:auto;min-height:auto;align-self:center;aspect-ratio:8/5}
 .in-game.onboarding-active canvas{width:min(100%,calc((100vh - 485px)*1.6))}
 .in-game .tutorial-banner{position:relative;left:auto;top:auto;width:100%;margin:0 0 8px}
 .in-game .has-world-event .tutorial-banner,.has-world-event .tutorial-banner{top:auto}
}
@media(max-width:760px){.quest-focus{margin:7px 8px 3px}.quest-focus button{padding:7px}}
@media(max-width:760px){
 .in-game .tutorial-banner,.in-game.has-world-event .tutorial-banner{position:relative;left:auto;right:auto;top:auto;width:100%;margin:0 0 8px}
}

/* Reward feedback that stays out of the play field */
.quest-celebration{position:fixed;z-index:120;left:50%;top:82px;display:grid;grid-template-columns:42px minmax(0,1fr) 28px;gap:11px;align-items:center;width:min(520px,calc(100% - 28px));padding:12px 13px;border:1px solid #efff8d75;border-radius:15px;color:#effbf7;background:radial-gradient(circle at 8% 50%,#dff66f2e,transparent 30%),linear-gradient(135deg,#173c3df5,#071d29f5);box-shadow:0 18px 45px #0009,0 0 28px #dff66f1f;opacity:0;pointer-events:none;transform:translate(-50%,-18px) scale(.96);transition:opacity .25s,transform .35s cubic-bezier(.2,.8,.2,1);backdrop-filter:blur(16px)}
.quest-celebration.show{opacity:1;pointer-events:auto;transform:translate(-50%,0) scale(1)}
.quest-celebration-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:#17321c;background:linear-gradient(135deg,#efff8d,#65dfcd);font-size:23px;font-weight:900;box-shadow:0 0 20px #dff66f40}.quest-celebration small,.quest-celebration b,.quest-celebration em{display:block}.quest-celebration small{color:#dff66f;font-size:9px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase}.quest-celebration b{overflow:hidden;margin:2px 0;color:#fff;text-overflow:ellipsis;white-space:nowrap}.quest-celebration em{color:#a3c5c1;font-size:10px;font-style:normal}.quest-celebration button{width:28px;height:28px;padding:0;border:1px solid #ffffff18;border-radius:9px;color:#aac4c2;background:#071923;font-size:18px}
@media(max-width:760px){.quest-celebration{top:76px;grid-template-columns:36px minmax(0,1fr) 26px;padding:10px}.quest-celebration-icon{width:36px;height:36px;border-radius:11px}.quest-celebration em{font-size:9px}}
.reduce-motion .quest-celebration{transition:none}
@media(max-width:760px){.combat-active .tutorial-banner,.combat-active .world-event-hud{display:none}.combat-active .world-head{margin-bottom:7px}.combat-active .combat-hud{box-shadow:0 18px 45px #000c,0 0 0 1px #ff829024}}

/* Story answer terminal */
.quest-answer-card{grid-column:1/-1;display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;padding:22px;border:1px solid #70e4d240;border-radius:18px;background:radial-gradient(circle at 5% 12%,#dff66f18,transparent 28%),linear-gradient(145deg,#10333e,#061923);box-shadow:inset 0 1px #ffffff0b}.quest-answer-orb{display:grid;place-items:center;width:62px;height:62px;border:1px solid #eaff9470;border-radius:19px;color:#153022;background:linear-gradient(135deg,#efff8d,#65dfcd);box-shadow:0 0 28px #dff66f2b;font-size:30px;font-weight:900}.quest-answer-story small{color:#67ddcf;font-size:9px;font-weight:800;letter-spacing:1.2px}.quest-answer-story h3{margin:4px 0 7px;color:#fff;font-size:20px}.quest-answer-story p{margin:0;color:#a2c0bf;line-height:1.7}.quest-answer-card form{grid-column:1/-1;padding:16px;border:1px solid #ffffff12;border-radius:14px;background:#051722}.quest-answer-card label{display:block;margin-bottom:7px;color:#dcefeb;font-size:11px;font-weight:700}.quest-answer-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.quest-answer-input input{min-width:0;padding:12px 13px;border:1px solid #5dd9c644;border-radius:10px;color:#fff;background:#0b2935;outline:none}.quest-answer-input input:focus{border-color:#dff66f;box-shadow:0 0 0 3px #dff66f18}.quest-answer-input button{padding:11px 16px;border:0;border-radius:10px;color:#09262c;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:800}.quest-answer-input button:disabled{opacity:.6}.quest-answer-feedback{display:block;margin-top:8px;color:#7faaa9;font-size:10px}.quest-answer-feedback.error{color:#ff9caa}
.feature-dialog.compact{height:fit-content;max-height:88vh}
.admin-action-dialog{width:min(470px,94vw);height:auto;max-height:88vh;padding:0;color:#dff1ed;background:linear-gradient(155deg,#102d3b,#071923);border:1px solid #6ce4d13d}.admin-action-dialog::backdrop{background:#020a0ee8}.admin-action-content{display:grid;gap:15px;padding:22px}.admin-action-intro{display:flex;gap:14px;align-items:flex-start}.admin-action-intro>span{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:16px;background:#65dfcd18;font-size:27px}.admin-action-intro.danger>span{background:#ff71831b}.admin-action-intro h3{margin:1px 0 5px;color:#fff}.admin-action-intro p{margin:0;color:#93b1b4;line-height:1.6}.admin-action-note{display:block;margin-top:13px;padding:10px 12px;border:1px solid #ffffff10;border-radius:10px;color:#9db9ba;background:#061923}.admin-pin-display{display:flex;justify-content:center;gap:10px;margin:18px 0 12px}.admin-pin-display i{width:14px;height:14px;border:2px solid #65dfcd;border-radius:50%;background:transparent;transition:.18s}.admin-pin-display i.filled{background:#dff66f;border-color:#dff66f;box-shadow:0 0 12px #dff66f55}.admin-pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:285px;margin:auto}.admin-pin-pad button{min-height:45px;border:1px solid #65dfcd30;border-radius:12px;color:#e4f5f2;background:#0e3240;font-size:18px;font-weight:700}.admin-pin-pad button:active{transform:scale(.96)}.admin-pin-pad .pin-tool{color:#8dabad;font-size:13px}.admin-action-feedback{min-height:18px;margin:0;color:#ff9da8;text-align:center}.admin-action-buttons{display:grid;grid-template-columns:1fr 1.4fr;gap:9px}.admin-action-buttons button{padding:11px;border:1px solid #65dfcd35;border-radius:9px;color:#dff5f0;background:#10313e;font-weight:700}.admin-action-buttons .primary{border:0;color:#06202a;background:linear-gradient(135deg,#dff66f,#65dfcd)}.admin-action-buttons .danger{border:0;color:#fff;background:linear-gradient(135deg,#e95e70,#b92f44)}.admin-action-buttons button:disabled{opacity:.5;cursor:wait}
.admin-user-filters{display:flex;flex:1;gap:7px;align-items:end;min-width:420px}.admin-user-filters label{display:grid;gap:3px;color:#587079;font-size:9px}.admin-user-filters .admin-search{flex:1;min-width:170px}.admin-user-filters input,.admin-user-filters select{height:34px;padding:6px 9px;border:1px solid #cad9d6;border-radius:8px;background:#fff;color:#17313a}.admin-user-filters #adminRoom{width:75px}.admin-pager{display:flex;justify-content:center;gap:12px;align-items:center;padding:9px 16px;border-top:1px solid var(--line);background:#f7faf9}.admin-pager button{padding:7px 11px;border:1px solid #c9d9d5;border-radius:7px;color:#184553;background:#fff}.admin-pager button:disabled{opacity:.4}.admin-pager span{min-width:170px;color:#45626a;text-align:center;font-size:11px;font-weight:700}@media(max-width:850px){.admin-actions{align-items:stretch;flex-wrap:wrap}.admin-user-filters{order:3;width:100%;min-width:0;display:grid;grid-template-columns:1fr 1fr}.admin-user-filters .admin-search{grid-column:1/-1}.admin-user-filters #adminRoom{width:100%}.report-link{margin-left:auto}.table-wrap{height:calc(100% - 430px)}}@media(max-width:500px){.admin-user-filters{grid-template-columns:1fr}.admin-user-filters .admin-search{grid-column:auto}.admin-pager{gap:5px}.admin-pager span{min-width:130px}}
.learning-card.reviewed{border-color:#76dfac33;opacity:.88}.learning-card.reviewed .learning-meta span:last-child{color:#8edeb2}.stage-result-rewards.depleted{border-color:#ffffff12;background:#0b2430}.stage-result-rewards.depleted span{opacity:.5}.stage-result-rewards.depleted small{color:#9bb5b7}
@media(max-width:600px){.quest-answer-card{grid-template-columns:46px minmax(0,1fr);gap:11px;padding:14px}.quest-answer-orb{width:46px;height:46px;border-radius:14px;font-size:23px}.quest-answer-story h3{font-size:16px}.quest-answer-story p{font-size:11px}.quest-answer-card form{padding:12px}.quest-answer-input{grid-template-columns:1fr}.quest-answer-input button{min-height:44px}}

/* One-screen safe trade */
.trade-builder{grid-column:1/-1;padding:18px;border:1px solid #68dfcd40;border-radius:18px;background:radial-gradient(circle at 8% 0,#65dfcd20,transparent 28%),linear-gradient(145deg,#10323e,#061923)}.trade-player{display:flex;gap:12px;align-items:center;margin-bottom:14px;padding-bottom:13px;border-bottom:1px solid #ffffff10}.trade-player>span{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;color:#0b2a2b;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:22px}.trade-player small,.trade-player b,.trade-player em{display:block}.trade-player small{color:#78a5a4;font-size:9px}.trade-player b{color:#fff}.trade-player em{color:#dff66f;font-size:9px;font-style:normal}.trade-builder form{display:grid;grid-template-columns:1fr 38px 1fr;gap:10px;align-items:center}.trade-side{align-self:stretch;padding:13px;border:1px solid #ffffff10;border-radius:13px;background:#061721}.trade-side>small{display:block;margin-bottom:8px;color:#dff66f;font-size:10px;font-weight:900;letter-spacing:1px}.trade-side label{display:block;margin-top:8px;color:#9bb9b8;font-size:9px}.trade-side select,.trade-side input{display:block;width:100%;margin-top:4px;padding:10px;border:1px solid #56d8c53b;border-radius:9px;color:#e9f7f4;background:#0c2a36}.trade-side em{display:block;margin-top:8px;color:#6f999a;font-size:9px;font-style:normal}.trade-swap{display:grid;place-items:center;width:38px;height:38px;border:1px solid #dff66f45;border-radius:50%;color:#dff66f;background:#0b2833;font-size:20px}.trade-confirm{grid-column:1/-1;display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:4px}.trade-feedback{color:#82a7a6;font-size:10px}.trade-feedback.error{color:#ff9aaa}.trade-confirm button{padding:11px 17px;border:0;border-radius:10px;color:#08252b;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:800}.incoming-trade{grid-column:1/-1;padding:24px;text-align:center;border:1px solid #dff66f52;border-radius:18px;background:radial-gradient(circle at 50% 0,#dff66f1f,transparent 34%),linear-gradient(145deg,#12343d,#061923)}.incoming-trade-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 10px;border-radius:18px;color:#0b2927;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:27px}.incoming-trade small{color:#65dfcd}.incoming-trade h3{margin:5px 0;color:#fff;font-size:21px}.incoming-trade p{color:#acc6c4}.incoming-trade p b{color:#efffa1}.incoming-trade em{display:block;color:#7fa2a2;font-size:10px;font-style:normal}.incoming-trade>div:last-child{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;margin-top:17px}.incoming-trade button{padding:11px;border:1px solid #ffffff18;border-radius:10px;color:#c9ddda;background:#0a2834}.incoming-trade button.primary{border:0;color:#08252b;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:800}
@media(max-width:600px){.trade-builder{padding:13px}.trade-builder form{grid-template-columns:1fr}.trade-swap{margin:auto;transform:rotate(90deg)}.trade-confirm{display:grid}.trade-confirm button{min-height:44px}.incoming-trade{padding:18px 13px}.incoming-trade>div:last-child{grid-template-columns:1fr}.incoming-trade button{min-height:44px}}

/* Explicit mobile top navigation and device safe areas */
@media(max-width:760px){
 body.in-game{padding-bottom:max(6px,env(safe-area-inset-bottom))}
 .in-game .topbar{height:calc(62px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);backdrop-filter:none}
 .in-game .topbar>.mini-brand,.in-game .topbar>div:nth-child(2),.in-game .topbar>.user-chip{display:none}
 .in-game .topbar nav{position:fixed;left:8px;right:64px;top:calc(5px + env(safe-area-inset-top));bottom:auto;margin:0}
 .in-game .mobile-menu-button{position:fixed;z-index:82;right:8px;top:calc(5px + env(safe-area-inset-top));display:grid;width:48px;height:50px;place-items:center;padding:0;border:1px solid #72e3d04a;border-radius:14px;color:#dff66f;background:#0b2935f5;font-size:21px;box-shadow:0 8px 25px #0008}
 .in-game .combat-hud{bottom:calc(8px + env(safe-area-inset-bottom))}
 .quest-celebration{top:calc(68px + env(safe-area-inset-top))}
}
.mobile-quick-menu{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:9px}.mobile-quick-menu button{display:grid;grid-template-columns:42px 1fr;gap:2px 10px;align-items:center;padding:13px;text-align:left;border:1px solid #63dfcd35;border-radius:13px;color:#e5f4f1;background:#0a2834}.mobile-quick-menu button>span{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;color:#0a2929;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:20px;font-weight:900}.mobile-quick-menu b,.mobile-quick-menu small{display:block}.mobile-quick-menu small{color:#789b9d;font-size:9px}.mobile-quick-menu button.danger{border-color:#ff81903b}.mobile-quick-menu button.danger>span{color:#fff;background:linear-gradient(135deg,#a53048,#642137)}
@media(max-width:520px){.mobile-quick-menu{grid-template-columns:1fr}.mobile-quick-menu button{min-height:68px}}
@media(max-height:500px) and (max-width:900px){
 body.in-game{padding-bottom:max(6px,env(safe-area-inset-bottom))}
 .in-game .topbar{height:calc(62px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);backdrop-filter:none}
 .in-game .topbar>.mini-brand,.in-game .topbar>div:nth-child(2),.in-game .topbar>.user-chip{display:none}
 .in-game .topbar nav{position:fixed;z-index:80;left:8px;right:64px;top:calc(5px + env(safe-area-inset-top));bottom:auto;display:grid!important;grid-template-columns:repeat(4,1fr);gap:5px;margin:0;padding:6px!important;border:1px solid #72e3d04a!important;border-radius:16px!important;background:#051923f2!important;box-shadow:0 8px 32px #000b}
 .in-game .topbar nav button{min-width:0;padding:10px 3px!important;font-size:12px}
 .in-game .mobile-menu-button{position:fixed;z-index:82;right:8px;top:calc(5px + env(safe-area-inset-top));display:grid;width:48px;height:50px;place-items:center;padding:0;border:1px solid #72e3d04a;border-radius:14px;color:#dff66f;background:#0b2935f5;font-size:21px}
}

/* Optional onboarding path */
.guide-meta{display:flex;justify-content:space-between;gap:10px;align-items:center}.guide-meta em{min-width:0}.guide-meta button{flex:0 0 auto;padding:2px 0;border:0;border-bottom:1px solid #88aca8;color:#9fc2bf;background:none;font-size:9px}.guide-meta button:hover{color:#efffa1;border-color:#efffa1}
.tutorial-skip-card{grid-column:1/-1;padding:22px;text-align:center;border:1px solid #dff66f3d;border-radius:17px;background:radial-gradient(circle at 50% 0,#dff66f1f,transparent 32%),linear-gradient(145deg,#11333d,#061923)}.tutorial-skip-card>span{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 10px;border-radius:17px;color:#08252b;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:27px}.tutorial-skip-card h3{margin:0;color:#fff;font-size:20px}.tutorial-skip-card p{max-width:510px;margin:8px auto 17px;color:#9ab9b7;line-height:1.65}.tutorial-skip-card>div{display:grid;grid-template-columns:1fr 1.35fr;gap:8px}.tutorial-skip-card button{min-height:42px;border:1px solid #ffffff18;border-radius:10px;color:#c8deda;background:#0b2935}.tutorial-skip-card button.primary{border:0;color:#08252b;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:800}
@media(max-width:760px){.guide-meta{align-items:flex-start}.guide-meta em{line-height:1.35}.tutorial-skip-card{padding:18px 13px}.tutorial-skip-card>div{grid-template-columns:1fr}.tutorial-skip-card button{min-height:46px}}

/* In-game safe chat reporting */
.report-card{grid-column:1/-1;display:grid;grid-template-columns:58px minmax(0,1fr);gap:14px;padding:20px;border:1px solid #67dfcc3d;border-radius:18px;background:radial-gradient(circle at 4% 4%,#65dfcd20,transparent 25%),linear-gradient(145deg,#10323e,#061923)}.report-shield{display:grid;place-items:center;width:58px;height:58px;border:1px solid #dff66f55;border-radius:18px;color:#092728;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:27px}.report-intro{min-width:0}.report-intro small{color:#65dfcd;font-size:9px;font-weight:800;letter-spacing:1px}.report-intro blockquote{overflow:hidden;margin:5px 0 7px;padding:10px 12px;border-left:3px solid #dff66f;border-radius:0 9px 9px 0;color:#eef9f6;background:#04151f;text-overflow:ellipsis}.report-intro p{margin:0;color:#8faeae;font-size:10px;line-height:1.55}.report-card form{grid-column:1/-1}.report-reasons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.report-reasons input{position:absolute;opacity:0;pointer-events:none}.report-reasons span{display:grid;grid-template-columns:34px 1fr;gap:1px 9px;align-items:center;min-height:58px;padding:9px 11px;border:1px solid #ffffff11;border-radius:11px;color:#dceeea;background:#081f2a;cursor:pointer}.report-reasons span>b,.report-reasons span>small{grid-column:2}.report-reasons span>b{font-size:11px}.report-reasons span>small{color:#76999b;font-size:8px}.report-reasons input:focus-visible+span{outline:2px solid #65dfcd;outline-offset:2px}.report-reasons input:checked+span{border-color:#dff66f99;color:#efffa1;background:linear-gradient(135deg,#173b3e,#0b2935);box-shadow:inset 0 0 0 1px #dff66f1f}.report-detail{display:block;margin-top:11px;color:#a9c4c2;font-size:9px}.report-detail textarea{display:block;box-sizing:border-box;width:100%;margin-top:5px;padding:10px 11px;resize:vertical;border:1px solid #5ed9c638;border-radius:10px;color:#fff;background:#061923;outline:none}.report-detail textarea:focus{border-color:#65dfcd;box-shadow:0 0 0 3px #65dfcd16}.report-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:11px}.report-footer small{color:#73999a;font-size:9px}.report-footer small.error{color:#ff9baa}.report-footer button{min-height:42px;padding:9px 15px;border:0;border-radius:10px;color:#08252b;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:800}.report-footer button:disabled{opacity:.6}
@media(max-width:600px){.report-card{grid-template-columns:46px minmax(0,1fr);gap:10px;padding:14px}.report-shield{width:46px;height:46px;border-radius:14px;font-size:22px}.report-reasons{grid-template-columns:1fr}.report-footer{display:grid}.report-footer button{width:100%;min-height:46px}}

/* Safe profession confirmation */
.profession-confirm-card{grid-column:1/-1;padding:20px;border:1px solid #dff66f42;border-radius:18px;background:radial-gradient(circle at 50% 0,#dff66f1b,transparent 32%),linear-gradient(145deg,#11333d,#061923)}.profession-transition{display:grid;grid-template-columns:1fr 34px 1fr;gap:9px;align-items:center}.profession-transition>div{display:grid;grid-template-columns:48px 1fr;gap:2px 10px;align-items:center;padding:12px;border:1px solid #ffffff11;border-radius:13px;background:#071b26}.profession-transition>div.next{border-color:#dff66f5c;background:linear-gradient(135deg,#173b3e,#0b2732)}.profession-transition small,.profession-transition b{grid-column:2}.profession-transition small{color:#789c9d;font-size:8px;letter-spacing:.8px}.profession-transition span{grid-row:1/3;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#65dfcd16;font-size:25px}.profession-transition .next span{color:#092728;background:linear-gradient(135deg,#dff66f,#65dfcd)}.profession-transition b{color:#fff}.profession-transition>i{color:#dff66f;font-size:22px;font-style:normal;text-align:center}.profession-confirm-card>p{margin:13px 0;color:#a0bdbc;line-height:1.65}.profession-confirm-bonuses{padding:11px 12px;border-radius:12px;background:#061923}.profession-confirm-bonuses>small{display:block;margin-bottom:7px;color:#65dfcd;font-size:9px;font-weight:800;letter-spacing:1px}.profession-confirm-bonuses>div{display:flex;gap:6px;flex-wrap:wrap}.profession-confirm-bonuses span{padding:5px 8px;border:1px solid #65dfcd32;border-radius:20px;color:#c8e5df;background:#0b2935;font-size:9px}.profession-price{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;margin-top:11px;padding:12px 14px;border:1px solid #dff66f40;border-radius:12px;background:#dff66f0c}.profession-price span{color:#9dbab8;font-size:9px}.profession-price b{grid-column:2;grid-row:1/3;color:#efffa1;font-size:19px}.profession-price small{color:#739b9c;font-size:9px}.profession-price.free{border-color:#65dfcd55;background:#65dfcd0e}.profession-price.free b{color:#75ead8}.profession-price.insufficient{border-color:#ff788b55;background:#ff52670b}.profession-price.insufficient b,.profession-price.insufficient small{color:#ff9baa}.profession-confirm-actions{display:grid;grid-template-columns:1fr 1.45fr;gap:8px;margin-top:13px}.profession-confirm-actions button{min-height:43px;border:1px solid #ffffff16;border-radius:10px;color:#c8deda;background:#0a2834}.profession-confirm-actions button.primary{border:0;color:#08252b;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:800}.profession-confirm-actions button:disabled{opacity:.5}
@media(max-width:600px){.profession-confirm-card{padding:14px}.profession-transition{grid-template-columns:1fr 24px 1fr}.profession-transition>div{display:block;padding:10px;text-align:center}.profession-transition small,.profession-transition b{display:block}.profession-transition span{width:42px;height:42px;margin:5px auto;font-size:22px}.profession-transition>i{font-size:17px}.profession-confirm-actions{grid-template-columns:1fr}.profession-confirm-actions button{min-height:46px}}

/* Destructive player-action confirmation */
.danger-confirm-card{grid-column:1/-1;padding:23px;text-align:center;border:1px solid #ff7e9052;border-radius:18px;background:radial-gradient(circle at 50% 0,#ff536c20,transparent 34%),linear-gradient(145deg,#321827,#081b26)}.danger-confirm-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 10px;border:1px solid #ff9bac66;border-radius:18px;color:#fff;background:linear-gradient(145deg,#a52c49,#5a1c33);box-shadow:0 0 28px #ff536c2e;font-size:27px;font-weight:900}.danger-confirm-card h3{margin:0;color:#fff;font-size:21px}.danger-confirm-card>p{max-width:520px;margin:7px auto 13px;color:#bd9fa6;line-height:1.65}.danger-confirm-card ul{max-width:520px;margin:0 auto 16px;padding:11px 14px 11px 32px;text-align:left;border:1px solid #ffffff0e;border-radius:12px;color:#c8dbd8;background:#061923}.danger-confirm-card li{padding:3px 0;font-size:10px}.danger-confirm-card li::marker{color:#ff879a}.danger-confirm-card>div:last-child{display:grid;grid-template-columns:1fr 1.35fr;gap:8px}.danger-confirm-card button{min-height:43px;border:1px solid #ffffff17;border-radius:10px;color:#c8ddda;background:#0a2834}.danger-confirm-card button.danger{border-color:#ff829355;color:#ffe9ed;background:linear-gradient(145deg,#9c2946,#5e1c34);font-weight:800}.danger-confirm-card button:disabled{opacity:.55}
@media(max-width:600px){.danger-confirm-card{padding:18px 13px}.danger-confirm-card>div:last-child{grid-template-columns:1fr}.danger-confirm-card button{min-height:47px}}

/* Story briefing before a timed stage begins */
.stage-briefing{grid-column:1/-1;display:grid;grid-template-columns:1.15fr .85fr;gap:13px}.stage-briefing-art{position:relative;grid-column:1/-1;display:flex;min-height:205px;align-items:flex-end;justify-content:space-between;padding:20px;border:1px solid #ffffff1c;border-radius:18px;overflow:hidden;background-position:center;background-size:cover;box-shadow:inset 0 -90px 80px #03131dcc}.stage-briefing-art:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,#0619231f,#06192300 55%,#65dfcd16);pointer-events:none}.stage-briefing-art.map-village{background-image:linear-gradient(180deg,#04151f18,#04151fc9),url('maps/village.webp?v=1')}.stage-briefing-art.map-forest{background-image:linear-gradient(180deg,#04151f18,#04151fc9),url('maps/forest.webp?v=1')}.stage-briefing-art.map-cave{background-image:linear-gradient(180deg,#04151f18,#04151fc9),url('maps/cave.webp?v=1')}.stage-briefing-art.map-mine{background-image:linear-gradient(180deg,#04151f18,#04151fc9),url('maps/mine.webp?v=1')}.stage-briefing-art>span{position:relative;z-index:1;align-self:flex-start;padding:7px 10px;border:1px solid #dff66f66;border-radius:20px;color:#efffa1;background:#071a24d9;font-size:10px;font-weight:800}.stage-briefing-art>div{position:relative;z-index:1;text-align:right}.stage-briefing-art small{color:#8de9db;font-size:10px;font-weight:700;letter-spacing:.7px}.stage-briefing-art h3{max-width:470px;margin:3px 0 0;color:#fff;font-size:27px;text-shadow:0 3px 16px #000}.stage-briefing-copy{grid-column:1/-1;padding:16px 18px;border-left:3px solid #dff66f;border-radius:0 13px 13px 0;background:linear-gradient(90deg,#dff66f0e,#071b2600)}.stage-briefing-copy small{color:#dff66f;font-size:9px;font-weight:800;letter-spacing:1px}.stage-briefing-copy p{margin:5px 0 0;color:#c6dbd8;font-size:12px;line-height:1.8}.stage-briefing-mission{display:grid;grid-template-columns:1fr 1fr;gap:7px}.stage-briefing-mission>div{min-width:0;padding:11px;border:1px solid #ffffff0f;border-radius:11px;background:#061923}.stage-briefing-mission>div:first-child{grid-column:1/-1}.stage-briefing-mission small,.stage-briefing-mission b{display:block}.stage-briefing-mission small{margin-bottom:4px;color:#719698;font-size:8px}.stage-briefing-mission b{color:#e8f5f2;font-size:11px;line-height:1.5}.stage-briefing-reward{display:grid;grid-template-columns:1fr auto;gap:6px 14px;align-content:center;padding:13px 15px;border:1px solid #dff66f3a;border-radius:13px;background:radial-gradient(circle at 100% 0,#dff66f17,transparent 48%),#071d27}.stage-briefing-reward span{grid-row:1/3;align-self:center;color:#9db8b6;font-size:10px}.stage-briefing-reward b{color:#efffa1;text-align:right;font-size:12px}.stage-briefing-party{grid-column:1/-1;display:flex;gap:10px;align-items:center;padding:11px 13px;border:1px solid #65dfcd2f;border-radius:12px;background:#65dfcd0b}.stage-briefing-party>span{display:grid;place-items:center;width:36px;height:36px;flex:0 0 auto;border-radius:10px;color:#092728;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:18px}.stage-briefing-party p{margin:0;color:#a9c6c3;font-size:10px;line-height:1.5}.stage-briefing-party.waiting{border-color:#f2b76642;background:#f2b7660b}.stage-briefing-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.5fr;gap:8px}.stage-briefing-actions button{min-height:45px;border:1px solid #ffffff18;border-radius:11px;color:#c8deda;background:#0a2834}.stage-briefing-actions button.primary{border:0;color:#08252b;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:800}.stage-briefing-actions button:disabled{opacity:.48}
@media(max-width:600px){.stage-briefing{grid-template-columns:1fr}.stage-briefing-art{min-height:175px;padding:14px}.stage-briefing-art h3{font-size:21px}.stage-briefing-copy{padding:13px 14px}.stage-briefing-mission,.stage-briefing-reward,.stage-briefing-party,.stage-briefing-actions{grid-column:1}.stage-briefing-actions{position:sticky;z-index:3;bottom:-14px;grid-template-columns:.8fr 1.4fr;margin:0 -14px -14px;padding:10px 14px 14px;border-top:1px solid #65dfcd2b;background:linear-gradient(180deg,#071b2600,#071b26 20%);box-shadow:0 -14px 24px #04141bd9}.stage-briefing-actions button{min-height:48px;padding:7px;font-size:10px}}

/* Fast, one-screen sign-in path */
.login-panel .login-card{padding:30px}
@media(max-width:760px){
 .login-art{min-height:230px;justify-content:flex-start;padding:16px 18px 24px;background-position:72% center}
 .login-art .brand-mark{width:38px;height:38px;border-radius:11px;font-size:14px}
 .login-art>.eyebrow{margin-top:7px;font-size:8px}
 .login-art h1{margin:8px 0 7px;font-size:46px;line-height:.78}
 .login-art .lead{display:-webkit-box;max-width:270px;margin:0;overflow:hidden;font-size:11px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}
 .login-story-stats{gap:5px;margin-top:9px}
 .login-story-stats span{padding:4px 7px;font-size:7px}
 .login-story-stats b{font-size:10px}
 .login-panel{padding:0 10px 12px}
 .login-panel .login-card{margin-top:-12px;padding:17px 16px;border-radius:19px}
 .login-panel .login-card>.eyebrow{margin:0;font-size:9px}
 .login-panel .login-card h2{margin:4px 0;font-size:23px}
 .login-panel .login-card>.muted{margin:5px 0;font-size:10px;line-height:1.45}
 .login-panel .login-sound-toggle{min-height:43px;margin:7px 0 1px;padding:6px 8px}
 .login-panel .login-sound-toggle>span:first-child{width:33px;height:33px;flex-basis:33px;border-radius:9px;font-size:16px}
 .login-panel .login-sound-toggle b{font-size:11px}
 .login-panel .login-sound-toggle small{font-size:8px}
 .login-panel .login-card label{margin:10px 0 4px;font-size:11px}
 .login-panel .login-card input{padding:10px 12px}
 .login-panel .pin-unlock{margin-top:2px}
 .login-panel .pin-dots{gap:12px;margin:7px 0 10px}
 .login-panel .pin-dots i{width:12px;height:12px}
 .login-panel .pin-pad{gap:6px 18px}
 .login-panel .pin-pad button{width:56px;height:43px;font-size:17px}
 .login-panel .login-card .primary{min-height:44px;margin-top:11px;padding:10px 14px}
 .login-panel .link-btn,.login-panel .admin-toggle{margin:8px auto;font-size:10px}
}

/* Keep essential settings actions visible while the options scroll */
@media(max-width:600px){
 .settings-panel{gap:9px}
 .settings-hero{gap:10px;padding:12px}
 .settings-orb{width:44px;height:44px;flex-basis:44px;border-radius:13px;font-size:21px}
 .settings-hero h3{font-size:17px}
 .settings-hero p{font-size:9px;line-height:1.4}
 .settings-presets{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .settings-presets button{display:block;min-height:76px;padding:7px;text-align:center}
 .settings-presets button>span{width:32px;height:32px;margin:0 auto 4px}
 .settings-presets button b{font-size:9px}
 .settings-presets button small{display:none}
 .settings-section{padding:13px}
 .settings-footer{position:sticky;z-index:3;bottom:-14px;display:grid;grid-template-columns:.85fr 1.35fr;gap:7px;margin:0 -14px -14px;padding:10px 14px 14px;border-top:1px solid #65dfcd2b;background:linear-gradient(180deg,#071b2600,#071b26 20%);box-shadow:0 -14px 24px #04141bd9}
 .settings-footer button,.settings-footer .primary{min-width:0;min-height:46px;padding:7px;font-size:9px}
}

/* Context-aware next-action dock */
.in-game .nearby{position:relative;z-index:8;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:stretch;margin-top:8px;padding:7px;border:1px solid #65dfcd2b;border-radius:15px;background:linear-gradient(135deg,#0d2f3c,#061923);box-shadow:0 12px 28px #0005}.in-game .interaction-primary{display:grid;grid-template-columns:42px minmax(0,1fr) 22px;gap:9px;align-items:center;min-width:0;min-height:54px;padding:7px 9px;border:1px solid #dff66f55;border-radius:11px;color:#eaf8f4;background:linear-gradient(135deg,#173d42,#0b2935);text-align:left;box-shadow:inset 0 1px #ffffff0b}.in-game .interaction-primary:hover{color:#eaf8f4;background:linear-gradient(135deg,#1c4a4b,#0d3340)}.interaction-primary>span:first-child{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;color:#092728;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:21px}.interaction-primary>span:nth-child(2){min-width:0}.interaction-primary small,.interaction-primary b,.interaction-primary em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.interaction-primary small{color:#74dbd0;font-size:8px;font-weight:800;letter-spacing:.6px}.interaction-primary b{margin:1px 0;color:#fff;font-size:12px}.interaction-primary em{color:#8caeae;font-size:9px;font-style:normal}.interaction-primary>i{color:#dff66f;font-size:19px;font-style:normal;text-align:center}.interaction-more{position:relative}.interaction-more summary{display:flex;min-height:54px;align-items:center;gap:7px;padding:8px 11px;border:1px solid #ffffff11;border-radius:11px;color:#a8c6c3;background:#071d28;cursor:pointer;font-size:9px;list-style:none}.interaction-more summary::-webkit-details-marker{display:none}.interaction-more summary:before{content:'＋';color:#65dfcd;font-size:15px}.interaction-more[open] summary:before{content:'−'}.interaction-more summary span{display:grid;place-items:center;min-width:21px;height:21px;border-radius:20px;color:#102827;background:#dff66f;font-size:8px;font-weight:800}.interaction-more>div{display:flex;gap:6px;flex-wrap:wrap;padding-top:7px}.in-game .interaction-more>div button{min-height:34px}.in-game .interaction-more>div button:disabled{opacity:.45}
.in-game .interaction-primary.revive{border-color:#70ffad88;background:linear-gradient(135deg,#164b3b,#0a2931);box-shadow:0 0 20px #48ef9b18,inset 0 1px #ffffff12}.interaction-primary.revive>span:first-child{background:linear-gradient(135deg,#baff8f,#4ee0a0)}.interaction-primary.revive small{color:#86f1ba}
@media(min-width:1101px){.in-game .nearby{position:absolute;left:12px;right:12px;bottom:10px;margin:0;background:#071923e8;backdrop-filter:blur(12px)}.interaction-more>div{position:absolute;right:0;bottom:calc(100% + 6px);width:min(440px,60vw);padding:9px;border:1px solid #65dfcd2b;border-radius:12px;background:#071923f5;box-shadow:0 14px 30px #0008}}
@media(max-width:600px){.in-game .nearby{grid-template-columns:1fr;padding:6px}.in-game .interaction-primary{min-height:58px}.interaction-more summary{min-height:38px;justify-content:center}.interaction-more>div{display:grid;grid-template-columns:1fr 1fr}.in-game .interaction-more>div button{min-height:42px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Enemy archetype color language */
.combat-hud[data-archetype="slime"]{border-color:#72e09b70;box-shadow:0 18px 45px #000b,0 0 24px #49db8a20}.combat-hud[data-archetype="bat"],.combat-hud[data-archetype="hunter"]{border-color:#b88cff80;box-shadow:0 18px 45px #000b,0 0 25px #9b67ee26}.combat-hud[data-archetype="golem"]{border-color:#d7aa7180;box-shadow:0 18px 45px #000b,0 0 25px #d59a5523}.combat-hud[data-archetype="crystal"]{border-color:#70ecea82;box-shadow:0 18px 45px #000b,0 0 25px #50e5e526}.combat-hud[data-archetype="storm"]{border-color:#ffe26e8c;box-shadow:0 18px 45px #000b,0 0 27px #ffd95d29}.combat-hud[data-archetype="boss"]{border-color:#ff56728c;box-shadow:0 18px 45px #000c,0 0 32px #ff49643d}

/* Chapter ending and stage outcome */
.stage-result-card{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:11px}.stage-result-scene{position:relative;grid-column:1/-1;display:flex;min-height:190px;align-items:flex-end;gap:15px;padding:19px;border:1px solid #ffffff1b;border-radius:18px;overflow:hidden;background-position:center;background-size:cover;box-shadow:inset 0 -110px 85px #03131de8}.stage-result-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,#06192324,#06192300 60%,#65dfcd17);pointer-events:none}.stage-result-scene.map-village{background-image:linear-gradient(180deg,#04151f1a,#04151fd4),url('maps/village.webp?v=1')}.stage-result-scene.map-forest{background-image:linear-gradient(180deg,#04151f1a,#04151fd4),url('maps/forest.webp?v=1')}.stage-result-scene.map-cave{background-image:linear-gradient(180deg,#04151f1a,#04151fd4),url('maps/cave.webp?v=1')}.stage-result-scene.map-mine{background-image:linear-gradient(180deg,#04151f1a,#04151fd4),url('maps/mine.webp?v=1')}.stage-result-seal{position:relative;z-index:1;display:grid;width:61px;height:61px;flex:0 0 auto;place-items:center;border:2px solid #f4ffad;border-radius:20px;color:#102a29;background:linear-gradient(135deg,#efff83,#65dfcd);box-shadow:0 0 34px #dff66f57;font-size:31px;font-weight:900}.stage-result-card.failed .stage-result-seal{border-color:#ff9aa9;color:#fff;background:linear-gradient(145deg,#a52c49,#5a1c33);box-shadow:0 0 30px #ff536c38}.stage-result-scene>div{position:relative;z-index:1;min-width:0}.stage-result-scene small{color:#7be8da;font-size:9px;font-weight:800;letter-spacing:1px}.stage-result-scene h3{margin:3px 0;color:#fff;font-size:27px;text-shadow:0 3px 14px #000}.stage-result-scene p{margin:0;color:#b9d3cf;font-size:10px}.stage-result-stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.stage-result-stats>div{padding:11px;text-align:center;border:1px solid #ffffff10;border-radius:11px;background:#061923}.stage-result-stats small,.stage-result-stats b{display:block}.stage-result-stats small{color:#71989a;font-size:8px}.stage-result-stats b{margin-top:3px;color:#fff;font-size:14px;font-variant-numeric:tabular-nums}.stage-result-rewards{display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:14px;border:1px solid #dff66f45;border-radius:13px;background:radial-gradient(circle at 100% 0,#dff66f1c,transparent 48%),#071d27}.stage-result-rewards small{grid-row:1/3;align-self:center;color:#9ab6b4;font-size:9px}.stage-result-rewards span{color:#dceeea;text-align:right;font-size:10px}.stage-result-rewards b{color:#efffa1;font-size:15px}.stage-result-tip{display:flex;gap:10px;align-items:center;padding:14px;border:1px solid #ff8a9950;border-radius:13px;background:#ff61730b}.stage-result-tip>span{font-size:22px}.stage-result-tip p{margin:0;color:#c8adaf;font-size:10px;line-height:1.55}.stage-result-story{padding:14px;border-left:3px solid #65dfcd;border-radius:0 12px 12px 0;background:linear-gradient(90deg,#65dfcd0d,transparent)}.stage-result-story small{color:#65dfcd;font-size:8px;font-weight:800;letter-spacing:1px}.stage-result-story p{margin:4px 0 7px;color:#b5cecb;font-size:10px;line-height:1.65}.stage-result-story b{color:#efffa1;font-size:10px}.stage-result-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.45fr;gap:8px}.stage-result-actions button{min-height:45px;border:1px solid #ffffff17;border-radius:10px;color:#c8deda;background:#0a2834}.stage-result-actions button.primary{border:0;color:#08252b;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:800}
@media(max-width:600px){.stage-result-card{grid-template-columns:1fr}.stage-result-scene{min-height:160px;padding:14px}.stage-result-seal{width:50px;height:50px;border-radius:16px;font-size:25px}.stage-result-scene h3{font-size:20px}.stage-result-stats,.stage-result-rewards,.stage-result-tip,.stage-result-story,.stage-result-actions{grid-column:1}.stage-result-rewards,.stage-result-story{padding:12px}.stage-result-actions{position:sticky;z-index:3;bottom:-14px;grid-template-columns:.8fr 1.4fr;margin:0 -14px -14px;padding:10px 14px 14px;border-top:1px solid #65dfcd2b;background:linear-gradient(180deg,#071b2600,#071b26 20%);box-shadow:0 -14px 24px #04141bd9}.stage-result-actions button{min-height:48px;padding:7px;font-size:9px}}

/* Tangible equipment progression */
.stats{grid-template-columns:repeat(2,1fr);margin:14px 0}
.inventory-item{gap:7px}.inventory-item>span{min-width:0}.inventory-item button{min-width:63px;min-height:28px;padding:5px 7px}.equipment-slot{display:inline-block;margin:0 3px;padding:2px 5px;border:1px solid #65dfcd36;border-radius:10px;color:#77dace;background:#65dfcd0d;font-size:7px;font-style:normal;vertical-align:middle}.inventory-item.equipped .equipment-slot{border-color:#dff66f55;color:#efffa1}.inventory-item .equipment-delta,.craft-output .equipment-delta{font-weight:800}.equipment-delta.up{color:#8fe6a6!important}.equipment-delta.down{color:#ff9baa!important}.equipment-delta.same{color:#87abb0!important}.craft-output{display:grid;grid-template-columns:1fr auto}.craft-output .equipment-delta{grid-column:1/-1;padding-top:5px;border-top:1px solid #ffffff0b}
.equipment-preview,.equipment-result,.craft-result{grid-column:1/-1}.equipment-preview-head{display:flex;gap:13px;align-items:center;padding:14px;border:1px solid #dff66f45;border-radius:15px;background:radial-gradient(circle at 0 0,#dff66f1b,transparent 50%),#071d27}.equipment-preview-head>span{display:grid;width:55px;height:55px;flex:0 0 auto;place-items:center;border-radius:16px;color:#092728;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:27px}.equipment-preview-head small,.equipment-preview-head h3,.equipment-preview-head p{display:block;margin:0}.equipment-preview-head small{color:#8de9db;font-size:9px;font-weight:800;letter-spacing:.8px}.equipment-preview-head h3{margin:2px 0;color:#fff;font-size:21px}.equipment-preview-head p{color:#8fabaa;font-size:10px}
.equipment-versus{display:grid;grid-template-columns:1fr 28px 1fr;gap:7px;align-items:center;margin-top:10px}.equipment-versus>div{padding:12px;border:1px solid #ffffff10;border-radius:12px;background:#061923}.equipment-versus>div.next{border-color:#65dfcd4d;background:linear-gradient(135deg,#12383d,#08232e)}.equipment-versus small,.equipment-versus b,.equipment-versus span{display:block}.equipment-versus small{color:#789b9d;font-size:8px}.equipment-versus b{margin:3px 0;color:#fff;font-size:11px}.equipment-versus span{color:#7eddd0;font-size:10px}.equipment-versus>i{color:#dff66f;text-align:center;font-size:18px;font-style:normal}
.equipment-projection,.equipment-result-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.equipment-projection>div,.equipment-result-stats>div{display:grid;grid-template-columns:1fr auto auto auto;gap:7px;align-items:center;padding:12px;border:1px solid #ffffff10;border-radius:12px;background:#061923}.equipment-projection small,.equipment-result-stats small{grid-column:1/-1;color:#75999b;font-size:8px}.equipment-projection span,.equipment-result-stats span{color:#8caeae;font-size:13px}.equipment-projection i,.equipment-result-stats i{color:#5e8285;font-style:normal}.equipment-projection b,.equipment-result-stats b{color:#fff;font-size:17px}.equipment-projection em,.equipment-result-stats em{padding:3px 6px;border-radius:12px;color:#8ee5a6;background:#46c78516;font-size:9px;font-style:normal}.equipment-projection b.up{color:#a7f6a9}.equipment-projection b.down{color:#ff9baa}.equipment-advice{margin:10px 0;padding:10px 12px;border-left:3px solid #65dfcd;color:#a9c5c2;background:#65dfcd0b;font-size:10px;line-height:1.55}.equipment-actions,.craft-result-actions{display:grid;grid-template-columns:1fr 1.45fr;gap:8px}.equipment-actions button,.craft-result-actions button,.equipment-result>button{min-height:45px;border:1px solid #ffffff17;border-radius:10px;color:#c8deda;background:#0a2834}.equipment-actions .primary,.craft-result-actions .primary,.equipment-result>button.primary{border:0;color:#08252b;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:800}
.equipment-result,.craft-result{text-align:center;padding:19px;border:1px solid #65dfcd3b;border-radius:17px;background:radial-gradient(circle at 50% 0,#65dfcd1d,transparent 38%),#071b26}.equipment-result-seal,.craft-result-icon{display:grid;width:64px;height:64px;margin:0 auto 9px;place-items:center;border:2px solid #efffa1;border-radius:20px;color:#092728;background:linear-gradient(135deg,#dff66f,#65dfcd);box-shadow:0 0 34px #dff66f45;font-size:31px}.equipment-result>small,.craft-result>small{color:#7ce4d6;font-size:9px;font-weight:800;letter-spacing:1px}.equipment-result h3,.craft-result h3{margin:3px 0;color:#fff;font-size:23px}.craft-result h3 span{color:#efffa1;font-size:15px}.equipment-result>p,.craft-result>p{margin:5px 0 12px;color:#91afad;font-size:10px}.equipment-result>button{width:100%;margin-top:11px}.craft-result-power{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:12px 0}.craft-result-power>div{padding:11px;border:1px solid #ffffff10;border-radius:11px;background:#061923}.craft-result-power small,.craft-result-power b{display:block}.craft-result-power small{color:#75999b;font-size:8px}.craft-result-power b{margin-top:4px;color:#efffa1;font-size:11px}
@media(max-width:760px){.stats{grid-template-columns:repeat(4,1fr)}}
@media(max-width:600px){.equipment-preview-head{padding:12px}.equipment-preview-head>span{width:48px;height:48px}.equipment-versus{grid-template-columns:1fr 21px 1fr}.equipment-versus>div{padding:10px 8px}.equipment-versus b{font-size:9px}.equipment-projection,.equipment-result-stats,.craft-result-power{grid-template-columns:1fr}.equipment-actions,.craft-result-actions{position:sticky;z-index:3;bottom:-14px;grid-template-columns:.8fr 1.4fr;margin:10px -14px -14px;padding:10px 14px 14px;border-top:1px solid #65dfcd2b;background:linear-gradient(180deg,#071b2600,#071b26 20%);box-shadow:0 -14px 24px #04141bd9}.equipment-actions button,.craft-result-actions button{min-height:48px;padding:7px;font-size:9px}.equipment-result,.craft-result{padding:15px 12px}.equipment-result-seal,.craft-result-icon{width:55px;height:55px;border-radius:17px;font-size:26px}}

/* Non-blocking victory streak and fast re-engagement */
.combat-victory{position:fixed;z-index:65;top:82px;left:50%;display:grid;width:min(510px,calc(100vw - 24px));grid-template-columns:56px minmax(0,1fr);gap:10px 13px;align-items:center;padding:13px 14px;border:1px solid #dff66f70;border-radius:17px;color:#eaf8f4;background:radial-gradient(circle at 0 0,#dff66f25,transparent 42%),linear-gradient(145deg,#123b3d,#071923);box-shadow:0 20px 55px #000b,0 0 35px #dff66f1f;opacity:0;pointer-events:none;transform:translate(-50%,-18px) scale(.96);transition:.24s ease}.combat-victory.show{opacity:1;pointer-events:auto;transform:translate(-50%,0) scale(1)}.combat-victory-seal{display:grid;width:54px;height:54px;grid-row:1;place-items:center;border:2px solid #efffa1;border-radius:17px;color:#092728;background:linear-gradient(135deg,#efff83,#65dfcd);box-shadow:0 0 24px #dff66f3e;font-size:28px;font-weight:900}.combat-victory>div:nth-child(2){min-width:0}.combat-victory small,.combat-victory b,.combat-victory em,.combat-victory i{display:block}.combat-victory small{color:#dff66f;font-size:8px;font-weight:900;letter-spacing:1px}.combat-victory b{margin:2px 0;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.combat-victory em{color:#8be4d5;font-size:10px;font-style:normal}.combat-victory i{margin-top:2px;color:#92afad;font-size:8px;font-style:normal}.combat-victory-actions{grid-column:1/-1;display:grid;grid-template-columns:.75fr 1.5fr;gap:7px}.combat-victory-actions button{min-height:38px;border:1px solid #ffffff17;border-radius:9px;color:#c6ddda;background:#08232e;font-size:9px}.combat-victory-actions button.primary{border:0;color:#08252b;background:linear-gradient(135deg,#dff66f,#65dfcd);font-weight:800}
.reduce-motion .combat-victory{transition:none}
@media(max-width:600px){.combat-victory{top:67px;grid-template-columns:47px minmax(0,1fr);padding:10px 11px;border-radius:14px}.combat-victory-seal{width:45px;height:45px;border-radius:14px;font-size:23px}.combat-victory b{font-size:13px}.combat-victory-actions button{min-height:42px}}

/* 2026 world-flow overhaul: one clear mission, the world, then optional systems */
.in-game .game-view{min-height:100vh;background:
 radial-gradient(circle at 50% 0,#1a5164 0,transparent 33%),
 linear-gradient(145deg,#061722,#0a2736 54%,#06131d)}
.in-game .topbar{height:64px;padding:0 18px}
.in-game .topbar .mini-brand{width:42px;height:42px;border-radius:12px}
.in-game #mapNav{display:flex;align-items:center;gap:5px;padding:5px 6px}
.in-game #mapNav>span{padding:0 8px;color:#71a9ae;font-size:9px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}
.in-game #mapNav button{min-height:38px;padding:7px 11px;border-radius:9px;font-size:11px}
.in-game #mapNav button.active:after{content:' · อยู่ที่นี่';font-size:7px;font-weight:800}
.in-game .game-layout{grid-template-columns:214px minmax(590px,1fr) 286px;gap:12px;width:100%;max-width:none;margin:0;padding:12px 14px}
.in-game .left-panel{position:sticky;top:76px;align-self:start;max-height:calc(100vh - 88px);padding:14px;overflow:auto;scrollbar-width:thin}
.in-game .profile{padding-bottom:10px}.in-game .profile b{font-size:11px}.in-game .profile small{font-size:8px}
.in-game .bars label{grid-template-columns:46px 1fr 36px;margin:8px 0;font-size:9px}
.in-game .bars progress{height:7px}
.in-game .stats{gap:5px;margin:10px 0}.in-game .stats div{padding:6px 3px}.in-game .stats small{font-size:7px}.in-game .stats b{font-size:14px}
.side-section-head{display:flex;align-items:center;justify-content:space-between;gap:7px;margin:9px 0 6px}
.side-section-head h3{margin:0;font-size:11px}
.side-section-head button{padding:5px 7px;border:1px solid #65dfcd42;border-radius:7px;color:#8be8dc;background:#061923;font-size:8px}
.in-game .inventory{max-height:148px;padding-right:2px;overflow:auto;scrollbar-width:thin}
.in-game .inventory-item{min-height:34px;padding:5px 7px;font-size:9px}.in-game .inventory-item button{min-width:50px;min-height:24px;font-size:7px}
.in-game .action-btn{min-height:36px;margin-top:8px;padding:7px;font-size:9px}
.in-game .feature-actions,.in-game .adventure-actions{gap:4px;margin-top:6px}
.in-game .feature-actions button,.in-game .adventure-actions button{min-height:30px;padding:5px 3px;font-size:7px}
.in-game .world-wrap{display:flex;min-width:0;flex-direction:column}
.in-game .world-head{height:58px;padding:0 2px 7px}
.location-copy{display:grid;grid-template-columns:37px auto;grid-template-rows:15px 24px;column-gap:8px;align-items:center}
.location-copy>small{grid-column:1/-1;color:#6ca3aa!important;font-size:8px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}
.in-game .world-head .location-copy #mapIcon{grid-row:2;width:34px;height:30px}
.location-copy b{grid-column:2;grid-row:2;margin:0!important;color:#fff;font-size:14px}
.travel-button{display:grid;grid-template-columns:35px auto;grid-template-rows:18px 15px;column-gap:8px;align-items:center;min-width:190px;padding:5px 11px;border:1px solid #75e9d54a;border-radius:12px;color:#e8f9f5;background:linear-gradient(135deg,#113844,#0a2633);text-align:left}
.travel-button>span{display:grid;grid-row:1/3;width:34px;height:34px;place-items:center;border-radius:10px;color:#07272a;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:18px}
.travel-button b,.travel-button small{display:block}.travel-button b{font-size:10px}.travel-button small{color:#7da6aa;font-size:7px}
.mission-cockpit{position:relative;z-index:12;display:grid;grid-template-columns:102px minmax(0,1fr);min-height:104px;margin-bottom:8px;border:1px solid #dff66f52;border-radius:17px;overflow:hidden;background:radial-gradient(circle at 0 50%,#dff66f1d,transparent 32%),linear-gradient(120deg,#102e38,#0b2430);box-shadow:0 12px 28px #0004}
.mission-start{display:flex;flex-direction:column;justify-content:center;gap:5px;padding:13px;border-right:1px solid #ffffff0d;background:#06192375}
.mission-start>span{align-self:flex-start;padding:5px 8px;border-radius:20px;color:#142b20;background:#dff66f;font-size:8px;font-weight:900}
.mission-start>small{color:#8fb0af;font-size:8px;line-height:1.45}
.in-game .tutorial-banner{position:static;display:flex;max-width:none;min-width:0;align-items:center;justify-content:space-between;gap:16px;padding:13px 14px;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}
.in-game .tutorial-banner:before{display:none}
.guide-copy{min-width:0}.guide-kicker{color:#6de1d2;font-size:8px;font-weight:900;letter-spacing:.8px}.guide-copy>b{display:block;margin:2px 0;color:#fff;font-size:16px}.guide-copy>small{display:block;max-width:720px;color:#9cb9b9;font-size:9px;line-height:1.45}
.guide-copy>em{display:block;margin-top:5px;color:#7c9d9e;font-size:7px;font-style:normal}
.guide-action{flex:0 0 auto;min-width:138px;min-height:46px;padding:9px 15px;border:0;border-radius:12px;color:#102921;background:linear-gradient(135deg,#e7fa72,#65dfbd);box-shadow:0 8px 24px #cfee6927;font-size:10px;font-weight:900}
.guide-progress{height:4px;margin-top:7px;border-radius:5px;background:#04151d}.guide-progress span{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#dff66f,#65dfcd)}
.guide-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}.guide-meta em{color:#84a5a4;font-size:7px;font-style:normal}.guide-meta button{border:0;color:#6ebcb7;background:transparent;font-size:7px}
.in-game .world-event-hud{min-height:58px;margin-bottom:7px;padding:7px 10px}.in-game .world-event-copy p{display:none}.in-game .world-event-icon{width:37px;height:37px;font-size:18px}.in-game .world-event-copy strong{font-size:10px}
.in-game canvas{width:100%;min-height:0;max-height:calc(100vh - 296px);object-fit:contain}
.in-game .right-stack{position:sticky;top:76px;align-self:start;grid-template-rows:minmax(310px,1fr) 230px;gap:10px;height:calc(100vh - 88px);max-height:none}
.in-game .panel-title{height:55px;padding:0 12px}.panel-title>div>small{display:block;color:#6fa5a8;font-size:7px;font-weight:800;letter-spacing:.7px}.in-game .panel-title h3{font-size:13px}
.in-game .quests{overflow:hidden}.in-game #quests{height:calc(100% - 55px);overflow:auto;scrollbar-width:thin}
.quest-focus{display:grid;grid-template-columns:1fr auto;padding:9px 11px;border-bottom:1px solid #ffffff0c;background:#dff66f09}.quest-focus small,.quest-focus b{display:block}.quest-focus small{color:#72d8cc;font-size:7px}.quest-focus b{font-size:9px}.quest-focus button{grid-column:2;grid-row:1/3;align-self:center;padding:5px 7px;border:1px solid #65dfcd35;border-radius:7px;color:#8fddd4;background:#061923;font-size:7px}
.in-game .quest-card{padding:10px 12px}.in-game .quest-card b{font-size:10px}.in-game .quest-card p{display:-webkit-box;margin:3px 0;overflow:hidden;font-size:8px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.in-game .quest-card button{width:100%;margin-top:6px;padding:7px;border:0;border-radius:7px;color:#0a2925;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:8px;font-weight:800}.in-game .quest-meta{font-size:7px}
.in-game .chat{grid-template-rows:55px 1fr 44px}.in-game .chat #chatMessages{padding:7px 10px}.in-game .chat-line{font-size:9px}.in-game .chat form{padding:6px}.in-game .chat input{font-size:9px}
.in-game .nearby{bottom:8px}

.travel-intro,.bag-overview{display:flex;gap:12px;align-items:center;padding:14px;border:1px solid #65dfcd30;border-radius:14px;background:#0b2b37}
.travel-intro>span,.bag-overview>span{display:grid;width:48px;height:48px;flex:0 0 auto;place-items:center;border-radius:14px;color:#092728;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:24px}
.travel-intro b,.bag-overview b{display:block;color:#fff;font-size:16px}.travel-intro p,.bag-overview small{display:block;margin:3px 0 0;color:#92aeae;font-size:9px}
.travel-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}
.travel-card{overflow:hidden;border:1px solid #ffffff12;border-radius:15px;background:#071c27}.travel-card.current{border-color:#dff66f6e;box-shadow:0 0 0 1px #dff66f18}
.travel-scene{display:flex;min-height:82px;align-items:flex-end;justify-content:space-between;padding:11px;background-position:center;background-size:cover;box-shadow:inset 0 -55px 55px #03131ddd}.travel-scene.map-village{background-image:url('maps/village.webp?v=1')}.travel-scene.map-forest{background-image:url('maps/forest.webp?v=1')}.travel-scene.map-cave{background-image:url('maps/cave.webp?v=1')}.travel-scene.map-mine{background-image:url('maps/mine.webp?v=1')}.travel-scene span{font-size:24px}.travel-scene small{padding:3px 6px;border-radius:15px;color:#eaff9e;background:#06202ae6;font-size:7px;font-weight:800}
.travel-copy{padding:11px}.travel-copy h3{margin:0;color:#fff;font-size:13px}.travel-copy p{margin:3px 0;color:#a3bebc;font-size:8px}.travel-copy em{color:#68d8ca;font-size:7px;font-style:normal}.travel-copy>div{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.travel-copy>div span{padding:3px 5px;border-radius:10px;color:#8baaaa;background:#ffffff08;font-size:6px}.travel-copy button{width:100%;min-height:35px;border:0;border-radius:8px;color:#092a26;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:8px;font-weight:900}.travel-copy button:disabled{color:#789397;background:#0b2934}
.bag-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.bag-card{display:grid;grid-template-columns:42px 1fr auto;gap:9px;align-items:center;padding:10px;border:1px solid #ffffff10;border-radius:12px;background:#071c27}.bag-card>span{display:grid;width:40px;height:40px;place-items:center;border-radius:11px;background:#ffffff09;font-size:19px}.bag-card small,.bag-card b,.bag-card em{display:block}.bag-card small{color:#65d8cb;font-size:7px}.bag-card b{color:#fff;font-size:10px}.bag-card em{color:#77999b;font-size:7px;font-style:normal}.bag-card button{padding:7px;border:1px solid #65dfcd37;border-radius:7px;color:#b9e9e2;background:#0b303c;font-size:7px}.bag-card.equipped{border-color:#dff66f55}

@media(max-width:1200px){
 .in-game .game-layout{grid-template-columns:190px minmax(520px,1fr)}
 .in-game .right-stack{position:static;grid-column:1/-1;grid-template-columns:1fr 1fr;grid-template-rows:330px;height:330px}
 .in-game canvas{max-height:none}
 .in-game .mobile-controls{position:sticky;z-index:50;bottom:68px;padding-bottom:64px}
}
@media(max-width:760px){
 .in-game .topbar{height:58px;padding:0 9px}
 .in-game #mapNav{display:flex;position:fixed;z-index:80;top:5px!important;right:64px;bottom:auto!important;left:8px;height:auto;justify-content:space-around;padding:6px;border:1px solid #65dfcd3b;background:#04151df2;box-shadow:0 10px 35px #000b;backdrop-filter:blur(13px)}
 .in-game #mapNav>span{display:none}.in-game #mapNav button{min-width:0;flex:1;padding:7px 2px;font-size:8px}.in-game #mapNav button.active:after{display:none}
 .in-game .game-layout{display:flex;padding:7px 7px 74px}
 .in-game .world-head{height:52px}.location-copy{grid-template-columns:31px auto}.in-game .world-head .location-copy #mapIcon{width:29px;height:29px}.location-copy b{font-size:11px}
 .travel-button{min-width:42px;width:42px;padding:4px}.travel-button>span{width:32px;height:32px}.travel-button b,.travel-button small{display:none}
 .mission-cockpit{grid-template-columns:1fr;min-height:0}.mission-start{display:none}
 .in-game .tutorial-banner{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;padding:11px 12px}.guide-copy>b{font-size:13px}.guide-copy>small{font-size:9px;line-height:1.55}.guide-action{width:100%;min-width:0;min-height:42px;padding:8px;font-size:9px}
 .in-game .world-event-hud{margin-bottom:5px}
 .in-game canvas{max-height:none}
 .in-game .left-panel{position:static;max-height:none}
 .in-game .inventory{max-height:165px}
 .in-game .right-stack{height:620px}
 .travel-grid,.bag-grid{grid-template-columns:1fr}
}
@media(min-width:1101px){
 .in-game canvas{width:min(100%,calc((100vh - 430px)*1.6))!important}
}

/* Research-led learning guidance, healthy play, and safe classroom chat */
.session-clock{padding:5px 8px;border:1px solid #65dfcd2e;border-radius:20px;color:#84b8b9;background:#061923;font-size:8px;font-variant-numeric:tabular-nums;white-space:nowrap}
.session-clock.break-due{border-color:#dff66f66;color:#efffa1;background:#dff66f10}
.in-game .chat{grid-template-rows:55px minmax(0,1fr) auto 44px}
.chat-quick{display:flex;gap:4px;padding:5px 7px;border-top:1px solid #ffffff0b;overflow-x:auto;scrollbar-width:none}
.chat-quick::-webkit-scrollbar{display:none}.chat-quick button{flex:0 0 auto;padding:5px 7px;border:1px solid #65dfcd2e;border-radius:16px;color:#91d8d0;background:#082631;font-size:7px}
.chat-quick button:hover{color:#092629;background:#65dfcd}
.learning-recommendation{grid-column:1/-1;display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px 15px;border:1px solid #dff66f5c;border-radius:15px;background:radial-gradient(circle at 0 50%,#dff66f20,transparent 30%),linear-gradient(135deg,#123a3e,#071d29)}
.learning-recommendation>span{display:grid;width:48px;height:48px;place-items:center;border-radius:14px;color:#09272a;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:23px}.learning-recommendation small,.learning-recommendation b{display:block}.learning-recommendation small{color:#77dbd0;font-size:8px;font-weight:800}.learning-recommendation b{margin:2px 0;color:#fff;font-size:14px}.learning-recommendation p{margin:0;color:#86a7a8;font-size:8px}.learning-recommendation button{min-height:38px;padding:8px 13px;border:0;border-radius:9px;color:#092822;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:9px;font-weight:900}
.competency-card.needs-practice{border-color:#dff66f42;background:#dff66f09}.learning-card.recommended{border-color:#dff66f68;box-shadow:inset 3px 0 #dff66f}
.challenge-hint-entry{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0;padding:8px 10px;border:1px dashed #65dfcd40;border-radius:11px;background:#061923}.challenge-hint-entry button{padding:7px 9px;border:1px solid #65dfcd40;border-radius:8px;color:#c9f2eb;background:#10333f;font-size:9px}.challenge-hint-entry small{color:#79999c;font-size:8px}
.challenge-hint-panel:not(:empty){display:grid;grid-template-columns:37px minmax(0,1fr) auto;gap:9px;align-items:center;margin:8px 0;padding:10px;border:1px solid #dff66f42;border-radius:11px;background:#dff66f0a}.challenge-hint-panel>span{display:grid;width:35px;height:35px;place-items:center;border-radius:10px;background:#dff66f17;font-size:18px}.challenge-hint-panel small{color:#dff66f;font-size:7px;font-weight:800}.challenge-hint-panel p{margin:3px 0 0;color:#b8cfcc;font-size:9px;line-height:1.5}.challenge-hint-panel button{padding:6px 8px;border:1px solid #65dfcd3a;border-radius:7px;color:#8fe1d7;background:#0a2a35;font-size:7px}
@media(max-width:760px){.session-clock{display:none}.learning-recommendation{grid-template-columns:42px 1fr}.learning-recommendation>span{width:40px;height:40px}.learning-recommendation button{grid-column:1/-1;width:100%}.challenge-hint-entry{align-items:flex-start;flex-direction:column}.challenge-hint-panel:not(:empty){grid-template-columns:35px 1fr}.challenge-hint-panel button{grid-column:1/-1}}

.session-recap{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,.8fr) 1.5fr;gap:14px;align-items:center;padding:16px;border:1px solid #65dfcd43;border-radius:16px;background:radial-gradient(circle at 0 50%,#65dfcd1d,transparent 35%),linear-gradient(135deg,#103642,#071c28)}.session-recap small{color:#78aaa9;font-size:8px}.session-recap h3{margin:3px 0;color:#fff;font-size:16px}.session-recap-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.session-recap-stats>span{padding:9px;border:1px solid #ffffff0d;border-radius:10px;background:#061923;text-align:center}.session-recap-stats small,.session-recap-stats b{display:block}.session-recap-stats b{margin-top:2px;color:#efffa1;font-size:15px}
.admin-journey{margin:0 16px 14px;padding:16px;border:1px solid #62dac844;border-radius:15px;color:#dff1ed;background:linear-gradient(145deg,#102f3b,#071923)}.admin-journey-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.admin-journey-head small{color:#68d8ca;font-size:8px;font-weight:900;letter-spacing:1px}.admin-journey-head h3{margin:2px 0;color:#fff}.admin-journey-head>span{color:#75999b;font-size:8px}.admin-funnel{display:grid;grid-template-columns:repeat(7,minmax(105px,1fr));gap:6px;overflow-x:auto}.admin-funnel article{min-width:105px;padding:9px;border:1px solid #ffffff0e;border-radius:10px;background:#061923}.admin-funnel article>div{display:grid;grid-template-columns:23px 1fr;gap:3px 6px;align-items:center}.admin-funnel article>div>span{display:grid;width:22px;height:22px;grid-row:1/3;place-items:center;border-radius:7px;color:#092729;background:#65dfcd;font-size:8px;font-weight:900}.admin-funnel b,.admin-funnel strong,.admin-funnel small{display:block}.admin-funnel b{overflow:hidden;color:#dceeea;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.admin-funnel strong{color:#efffa1;font-size:11px}.admin-funnel progress{width:100%;height:5px;margin:6px 0}.admin-funnel small{color:#6e9093;font-size:6px;line-height:1.35}.admin-support-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}.admin-support-cards article{display:flex;gap:9px;align-items:center;padding:9px;border:1px solid #ffffff0d;border-radius:10px;background:#08232e}.admin-support-cards article.warning{border-color:#ffd66b43;background:#ffd66b0a}.admin-support-cards article>span{font-size:20px}.admin-support-cards b,.admin-support-cards small{display:block}.admin-support-cards b{color:#fff}.admin-support-cards small{color:#7f9fa1;font-size:7px}
@media(max-width:760px){.session-recap{grid-template-columns:1fr}.session-recap-stats{grid-template-columns:1fr 1fr}.admin-journey{margin:0 8px 10px;padding:12px}.admin-journey-head{align-items:flex-start;flex-direction:column}.admin-support-cards{grid-template-columns:1fr}}
.codex-loading{grid-column:1/-1;display:grid;place-items:center;gap:10px;min-height:260px;color:#9eb9bb;text-align:center}.codex-loading>span{display:grid;place-items:center;width:76px;height:76px;border:1px solid #65dfcd55;border-radius:24px;background:#65dfcd12;font-size:36px;box-shadow:0 0 40px #65dfcd17}.codex-loading.error>span{color:#ff9da8;border-color:#ff74854a;background:#ff748512}.codex-hero{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:20px;border:1px solid #dff66f40;border-radius:17px;background:radial-gradient(circle at 10% 10%,#67dfca24,transparent 36%),linear-gradient(135deg,#153c46,#09202c)}.codex-orb{display:grid;place-items:center;width:68px;height:68px;border-radius:20px;background:linear-gradient(135deg,#efff9c,#65dfcd);color:#09202c;font-size:31px;box-shadow:0 12px 30px #05121999}.codex-hero h3,.codex-hero p{margin:0}.codex-hero small{display:block;margin-bottom:3px;color:#72dfcf;font-size:9px;font-weight:800;letter-spacing:1.2px}.codex-hero h3{color:#fff;font-size:19px}.codex-hero progress{width:100%;height:7px;margin:9px 0 5px;accent-color:#dff66f}.codex-hero p{color:#91afb2;font-size:10px}.codex-hero>strong{color:#eaff9c;font-size:25px}.codex-category{grid-column:1/-1;padding:15px;border:1px solid #ffffff12;border-radius:15px;background:#071b26}.codex-category>header{display:flex;align-items:center;gap:10px;margin-bottom:11px}.codex-category>header>span{display:grid;place-items:center;width:39px;height:39px;border-radius:11px;background:#183c46;font-size:19px}.codex-category>header>div{flex:1}.codex-category h3,.codex-category small{display:block;margin:0}.codex-category h3{color:#fff;font-size:14px}.codex-category small{color:#6edecf;font-size:9px}.codex-category>header>b{padding:5px 8px;border-radius:9px;color:#dff66f;background:#dff66f12;font-size:11px}.codex-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.codex-entry{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:67px;padding:10px;border:1px solid #ffffff10;border-radius:11px;background:#0a2531}.codex-entry>span{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#65dfcd16;font-size:21px}.codex-entry small,.codex-entry b,.codex-entry em{display:block}.codex-entry small{color:#62cfbf;font-size:8px}.codex-entry b{margin:1px 0;color:#eaf6f3;font-size:11px}.codex-entry em{overflow:hidden;color:#789b9e;font-size:8px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.codex-entry>i{color:#dff66f;font-size:14px;font-style:normal}.codex-entry.unknown{border-style:dashed;opacity:.68}.codex-entry.unknown>span{color:#668386;background:#ffffff08;font-weight:900}.codex-entry.unknown b{color:#789397}.victory-discovery{display:block;margin-top:4px;color:#dff66f;font-size:10px}
@media(max-width:620px){.codex-hero{grid-template-columns:auto 1fr;padding:14px}.codex-orb{width:52px;height:52px;font-size:24px}.codex-hero>strong{grid-column:1/-1;text-align:right;font-size:16px}.codex-grid{grid-template-columns:1fr}.codex-entry{min-height:62px}.codex-category{padding:11px}}
.student-exploration-evidence{display:grid;grid-template-columns:minmax(190px,.75fr) 1fr;gap:10px 16px;align-items:center;padding:14px;border:1px solid #dff66f32;border-radius:12px;background:linear-gradient(140deg,#253820,#0a242e)}.student-exploration-evidence small{color:#dff66f;font-size:8px;font-weight:900;letter-spacing:.12em}.student-exploration-evidence h3,.student-exploration-evidence p{margin:3px 0}.student-exploration-evidence h3{color:#fff;font-size:13px}.student-exploration-evidence p{color:#8eaaa9;font-size:8px}.student-exploration-evidence progress{width:100%;height:8px;accent-color:#dff66f}.student-exploration-types{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.student-exploration-types span{display:flex;justify-content:space-between;padding:7px 9px;border-radius:8px;color:#91b0ae;background:#061923;font-size:8px}.student-exploration-types b{color:#efffa1;font-size:10px}@media(max-width:600px){.student-exploration-evidence{grid-template-columns:1fr}.student-exploration-types{grid-template-columns:1fr}}
.streak-card{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(150px,.65fr) 1fr;gap:13px;align-items:center;padding:15px;border:1px solid #ffbb6842;border-radius:15px;background:radial-gradient(circle at 0 50%,#ff9e5520,transparent 28%),linear-gradient(135deg,#2e2e29,#0a202b)}.streak-flame{display:grid;place-items:center;width:51px;height:51px;border-radius:16px;background:#ff9c4f1c;font-size:28px;filter:drop-shadow(0 5px 12px #ff86455c)}.streak-card small,.streak-card h3,.streak-card p{display:block;margin:0}.streak-card>div:nth-child(2)>small{color:#ffbd78;font-size:8px;font-weight:900;letter-spacing:.1em}.streak-card h3{margin:2px 0;color:#fff;font-size:17px}.streak-card p{color:#8fa8a8;font-size:8px}.streak-week{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.streak-week span{display:grid;place-items:center;gap:2px;padding:6px 2px;border:1px solid #ffffff0d;border-radius:9px;color:#678386;background:#061923}.streak-week span.done{color:#fff0a3;border-color:#ffb56745;background:#ff9e5512}.streak-week b{font-size:11px}.streak-week small{font-size:7px}@media(max-width:650px){.streak-card{grid-template-columns:auto 1fr}.streak-week{grid-column:1/-1}}
.progress-roadmap{grid-column:1/-1;padding:15px;border:1px solid #65dfcd36;border-radius:15px;background:linear-gradient(145deg,#0c2d38,#071b26)}.progress-roadmap>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.progress-roadmap>header small{color:#68d8ca;font-size:8px;font-weight:900;letter-spacing:.1em}.progress-roadmap>header h3{margin:2px 0;color:#fff;font-size:15px}.progress-roadmap>header>span{padding:7px 10px;border-radius:10px;color:#09272a;background:linear-gradient(135deg,#dff66f,#65dfcd);font-size:12px;font-weight:900}.progress-roadmap>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.progress-track{display:grid;grid-template-columns:39px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px;border:1px solid #ffffff0d;border-radius:11px;background:#061923}.progress-track>span{display:grid;place-items:center;width:39px;height:39px;border-radius:11px;background:#65dfcd13;font-size:19px}.progress-track small,.progress-track b,.progress-track em{display:block}.progress-track small{overflow:hidden;color:#789a9d;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.progress-track b{margin:1px 0;color:#e9f5f2;font-size:10px}.progress-track progress{width:100%;height:5px}.progress-track em{color:#6dd5c7;font-size:7px;font-style:normal}.progress-track>button{padding:7px 8px;border:1px solid #65dfcd35;border-radius:8px;color:#dff3ef;background:#103440;font-size:8px}.progress-track.complete{border-color:#dff66f32}.progress-track.complete>span{background:#dff66f16}.progress-track.complete>button{color:#09272a;background:#dff66f}@media(max-width:650px){.progress-roadmap>div{grid-template-columns:1fr}.progress-track small{white-space:normal}}

.weekly-expedition{grid-column:1/-1;overflow:hidden;border:1px solid #a98aff52;border-radius:17px;background:radial-gradient(circle at 5% 0,#aa78ff28,transparent 35%),linear-gradient(145deg,#202143,#081c2a)}.weekly-expedition>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px}.weekly-expedition>header small{color:#c5a9ff;font-size:8px;font-weight:900;letter-spacing:.1em}.weekly-expedition h3,.weekly-expedition p{margin:2px 0}.weekly-expedition h3{color:#fff;font-size:17px}.weekly-expedition p{color:#95a8bd;font-size:8px}.weekly-expedition>header>strong{display:grid;width:54px;height:54px;flex:0 0 auto;place-items:center;border:1px solid #d2bcff5c;border-radius:17px;color:#ecdeff;background:#a879ff1a;font-size:17px}.weekly-expedition>div{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:0 14px 14px}.weekly-expedition article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:center;padding:10px;border:1px solid #ffffff10;border-radius:11px;background:#071923}.weekly-expedition article>span{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:#a879ff16;font-size:17px}.weekly-expedition article b,.weekly-expedition article small{display:block}.weekly-expedition article b{color:#edf3f7;font-size:9px}.weekly-expedition article small{color:#a58bcf;font-size:7px}.weekly-expedition article progress{width:100%;height:5px;accent-color:#bd91ff}.weekly-expedition article button{grid-column:1/-1;min-height:31px;border:1px solid #b998ff46;border-radius:8px;color:#eadfff;background:#382b6155;font-size:8px;font-weight:800}.weekly-expedition article.done{border-color:#dff66f40}.weekly-expedition article.done>span{color:#0a2925;background:#dff66f}.weekly-expedition>footer{display:flex;justify-content:space-between;gap:12px;padding:10px 15px;color:#9e92b7;background:#050f1d73;font-size:8px}.weekly-expedition>footer b{color:#efffa1}.weekly-expedition.completed{border-color:#dff66f66}.admin-weekly-overview{margin-top:12px;padding:13px;border:1px solid #a98aff42;border-radius:12px;background:#a879ff0b}.admin-weekly-overview>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.admin-weekly-overview>header small{color:#c2a6f7;font-size:7px;font-weight:900;letter-spacing:.08em}.admin-weekly-overview h3,.admin-weekly-overview p{margin:2px 0}.admin-weekly-overview h3{color:#fff;font-size:14px}.admin-weekly-overview>header>div:last-child{display:grid;grid-template-columns:auto auto;gap:1px 7px;text-align:right}.admin-weekly-overview>header b{color:#efffa1;font-size:15px}.admin-weekly-overview>header>div:last-child small{color:#829a9d;font-size:6px}.admin-weekly-overview>p{color:#8da2a5;font-size:8px}.admin-weekly-classes{display:flex;gap:5px;margin-top:8px;overflow-x:auto}.admin-weekly-classes span{min-width:105px;padding:7px 9px;border-radius:8px;background:#061923}.admin-weekly-classes b,.admin-weekly-classes em{display:block}.admin-weekly-classes b{color:#e8f2ef;font-size:8px}.admin-weekly-classes em{color:#ad91df;font-size:7px;font-style:normal}
@media(max-width:760px){.weekly-expedition>div{grid-template-columns:1fr 1fr}.weekly-expedition>header{align-items:flex-start}.weekly-expedition>footer{align-items:flex-start;flex-direction:column}}
@media(max-width:430px){.weekly-expedition>div{grid-template-columns:1fr}}

/* Keyboard and assistive-technology access */
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #efff8d!important;outline-offset:3px!important;box-shadow:0 0 0 5px #092833cc!important}
@media(max-width:760px){.mobile-controls button,.in-game .mobile-controls button{height:44px}}
@media(max-width:760px){.in-game.combat-active .tutorial-banner,.in-game.combat-active .world-event-hud{display:none!important}}
