:root{--ink:#12324b;--muted:#62798c;--blue:#0b5ea8;--blue2:#0d83cf;--sky:#eaf7ff;--gold:#ffc72c;--orange:#ff9f1c;--green:#20a66a;--red:#de4964;--cream:#fff9ea;--paper:#fff;--shadow:0 18px 45px rgba(14,63,102,.16);--radius:24px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:ui-rounded,"Trebuchet MS",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:radial-gradient(circle at 20% 0,#d9f4ff 0,transparent 30%),linear-gradient(180deg,#f4fbff 0,#fff9ed 48%,#eef9ff 100%);min-height:100vh}
button,input{font:inherit}button{touch-action:manipulation}#confetti{position:fixed;inset:0;pointer-events:none;z-index:200;width:100%;height:100%}.hidden{display:none!important}
.topbar{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px clamp(14px,3vw,34px);background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-bottom:1px solid #dcecf6}.brand{display:flex;align-items:center;gap:10px}.brand-mark,.logo-pop{display:grid;place-items:center;background:linear-gradient(135deg,var(--gold),#ffe98a);color:#0f568d;font-weight:1000;border:4px solid #fff;outline:3px solid #0f6bab;border-radius:50%;box-shadow:0 6px 14px rgba(11,94,168,.18)}.brand-mark{width:44px;height:44px;font-size:19px}.brand strong{display:block;font-size:16px}.brand span{display:block;color:var(--muted);font-size:12px;font-weight:800}.hud{display:flex;align-items:center;gap:8px}.hud-pill{height:40px;display:flex;align-items:center;gap:5px;background:white;border:1px solid #d9e8f3;border-radius:999px;padding:0 11px;box-shadow:0 4px 14px rgba(18,55,82,.06)}.hud-pill b{font-size:16px}.hud-pill small{color:var(--muted)}.icon-btn{width:40px;height:40px;border:0;border-radius:50%;background:white;box-shadow:0 4px 14px rgba(18,55,82,.08);cursor:pointer}
main{max-width:1240px;margin:auto;padding:28px clamp(16px,3vw,32px) 70px}.hero{display:grid;grid-template-columns:1.35fr .65fr;gap:26px;align-items:stretch}.hero-copy,.hero-card{background:rgba(255,255,255,.86);border:1px solid #dcecf6;border-radius:32px;box-shadow:var(--shadow)}.hero-copy{padding:clamp(28px,5vw,58px);position:relative;overflow:hidden}.hero-copy:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,var(--gold),transparent 68%);right:-130px;top:-140px;opacity:.38}.eyebrow{font-size:12px;font-weight:1000;letter-spacing:.14em;color:var(--blue);text-transform:uppercase}.hero h1{font-size:clamp(34px,5.2vw,67px);line-height:.98;letter-spacing:-.04em;margin:12px 0 16px;max-width:780px}.hero p{font-size:18px;line-height:1.55;color:#4c667b;max-width:760px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.primary,.ghost,.danger{border:0;border-radius:15px;padding:12px 16px;font-weight:950;cursor:pointer;transition:.18s transform,.18s box-shadow}.primary{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;box-shadow:0 8px 18px rgba(11,94,168,.25)}.primary:hover,.ghost:hover{transform:translateY(-2px)}.ghost{background:#fff;color:var(--ink);border:2px solid #d9e7f1}.danger{background:#fff0f3;color:#b62742;border:2px solid #ffd1db}.big{padding:14px 19px}.full{width:100%}.hero-card{padding:24px;display:flex;flex-direction:column;justify-content:center;min-height:320px;background:linear-gradient(145deg,#0a5a9e,#1588d4);color:white}.avatar-stage{height:180px;display:grid;place-items:center;position:relative}.avatar-big{position:relative;z-index:2;width:126px;height:126px;border-radius:50%;display:grid;place-items:center;font-size:65px;background:linear-gradient(145deg,#fff,#e9f8ff);box-shadow:0 18px 35px rgba(0,0,0,.18);border:7px solid #ffd447}.orbit{position:absolute;border:2px dashed rgba(255,255,255,.5);border-radius:50%;animation:spin 12s linear infinite}.o1{width:165px;height:165px}.o2{width:205px;height:205px;animation-direction:reverse;animation-duration:18s}@keyframes spin{to{transform:rotate(360deg)}}.rank{text-align:center;font-weight:950;margin:7px 0 12px}.progress{height:14px;background:rgba(255,255,255,.22);border-radius:999px;overflow:hidden}.progress>div{height:100%;width:0;background:linear-gradient(90deg,#ffd12d,#fff29d);border-radius:inherit;transition:.5s}.progress-label{display:flex;justify-content:space-between;font-size:12px;margin-top:8px;font-weight:800;color:#e8f7ff}
.view-tabs{margin:32px 0 18px;display:flex;gap:9px}.tab{border:0;border-radius:999px;background:white;padding:11px 16px;font-weight:950;color:#526d80;box-shadow:0 5px 14px rgba(18,55,82,.08);cursor:pointer}.tab.active{background:#12324b;color:#fff}.view{display:none}.view.active{display:block}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:18px;margin:18px 0}.section-heading h2{font-size:clamp(27px,4vw,42px);margin:4px 0}.legend{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:12px;font-weight:800}
.worlds{display:grid;gap:22px}.world{position:relative;overflow:hidden;border-radius:30px;padding:24px;background:var(--world-bg,#fff);box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.8)}.world:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 100% 0,rgba(255,255,255,.65),transparent 34%);pointer-events:none}.world-head{position:relative;display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}.world-title{display:flex;align-items:center;gap:13px}.world-icon{width:58px;height:58px;border-radius:18px;background:rgba(255,255,255,.85);display:grid;place-items:center;font-size:30px;box-shadow:0 8px 18px rgba(0,0,0,.09)}.world h3{margin:0;font-size:25px}.world p{margin:3px 0 0;color:#48657a}.world-status{font-size:12px;font-weight:950;background:rgba(255,255,255,.78);border-radius:999px;padding:8px 11px}.path{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:12px;align-items:center}.path:before{content:"";position:absolute;height:7px;border-radius:999px;background:rgba(255,255,255,.65);left:5%;right:5%;top:50%;transform:translateY(-50%);z-index:0}.level,.chest-node{position:relative;z-index:1;min-height:105px;border:0;border-radius:22px;background:#fff;box-shadow:0 8px 18px rgba(20,60,90,.11);cursor:pointer;padding:12px 9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:.18s}.level:hover:not(:disabled),.chest-node:hover:not(:disabled){transform:translateY(-4px) scale(1.02)}.level .num{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#eaf6ff;color:var(--blue);font-weight:1000;font-size:19px}.level .short{font-size:11px;font-weight:900;text-align:center;line-height:1.1}.level .state{position:absolute;right:7px;top:7px}.level.done{outline:3px solid #6dd7a7}.level.done .num{background:#dff9eb;color:#13774d}.level.current{outline:4px solid #ffd447;animation:pulse 1.8s ease-in-out infinite}.level.locked{filter:grayscale(.8);opacity:.58;cursor:not-allowed}.player-token{position:absolute;left:-7px;top:-12px;font-size:25px;filter:drop-shadow(0 3px 4px rgba(0,0,0,.2))}@keyframes pulse{50%{box-shadow:0 0 0 10px rgba(255,212,71,.18),0 8px 18px rgba(20,60,90,.11)}}.chest-node{background:linear-gradient(145deg,#fff7cf,#ffe288);font-size:35px}.chest-node.claimed{background:#ebfff4}.chest-node.locked{opacity:.58;filter:grayscale(.7)}.chest-node span{font-size:10px;font-weight:1000;color:#6a5320}
.calendar{display:grid;grid-template-columns:repeat(6,1fr);gap:13px}.cal-day{position:relative;border:0;background:#fff;border-radius:21px;padding:15px;text-align:left;min-height:130px;box-shadow:0 8px 20px rgba(18,55,82,.09);cursor:pointer}.cal-day h3{font-size:15px;line-height:1.15;margin:8px 0;color:var(--ink)}.cal-day small{color:var(--muted);font-weight:800}.cal-day .cal-state{position:absolute;right:10px;top:10px;font-size:20px}.cal-day.done{outline:3px solid #9de1bd}.cal-day.locked{opacity:.48;filter:grayscale(.8);cursor:not-allowed}.cal-day.current{outline:3px solid var(--gold)}
.howto{margin-top:34px;background:#fff;border-radius:30px;padding:28px;box-shadow:var(--shadow)}.howto h2{font-size:30px;margin:0 0 18px}.how-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.how-grid article{background:#f6fbff;border:1px solid #deecf5;border-radius:20px;padding:18px}.how-grid b{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--blue);color:white;margin-bottom:10px}.how-grid span{display:block;font-weight:1000;font-size:16px}.how-grid p{font-size:13px;line-height:1.4;color:var(--muted);margin-bottom:0}
.overlay{position:fixed;inset:0;background:rgba(7,25,40,.72);backdrop-filter:blur(5px);z-index:100;display:none;align-items:center;justify-content:center;padding:18px}.overlay.open{display:flex}.dialog{position:relative;background:#fff;border-radius:28px;box-shadow:0 30px 80px rgba(0,0,0,.3);max-height:94vh;overflow:auto}.close-btn,.close-floating{border:0;background:white;border-radius:50%;width:42px;height:42px;font-size:25px;cursor:pointer;box-shadow:0 5px 15px rgba(0,0,0,.15);z-index:4}.close-btn{position:sticky;float:right;right:12px;top:12px}.close-floating{position:fixed;right:20px;top:20px}.onboarding-card{width:min(520px,100%);padding:34px;text-align:center}.logo-pop{width:72px;height:72px;margin:0 auto 20px;font-size:28px}.onboarding-card h2{font-size:35px;margin:0}.onboarding-card p{color:var(--muted);line-height:1.5}.field-label{display:block;text-align:left;font-weight:900;margin:16px 0 7px}.text-input{width:100%;border:2px solid #cfdeea;border-radius:14px;padding:13px 15px;font-size:17px;outline:none}.text-input:focus{border-color:var(--blue)}.avatar-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:20px}.avatar-choice{border:2px solid #dae7f0;background:white;border-radius:17px;padding:12px;font-size:32px;cursor:pointer}.avatar-choice.selected{border-color:var(--blue);background:#ebf7ff;box-shadow:0 0 0 3px #c9ebff}
.mission-dialog{width:min(1130px,100%)}.mission-layout{display:grid;grid-template-columns:minmax(300px,.78fr) 1.22fr;gap:0}.postcard-pane{background:linear-gradient(180deg,#e9f7ff,#f7fbff);padding:28px;display:flex;flex-direction:column;gap:12px}.postcard-pane img{width:100%;max-height:68vh;object-fit:contain;border-radius:19px;box-shadow:0 14px 30px rgba(12,59,92,.16);background:white}.mission-day{font-size:12px;font-weight:1000;letter-spacing:.13em;color:var(--blue)}.game-pane{padding:34px}.mission-topline{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;font-weight:900}.world-chip{background:#e8f7ff;color:var(--blue);border-radius:999px;padding:7px 10px}.game-pane h2{font-size:clamp(30px,4vw,45px);line-height:1;margin:14px 0}.fact-box{background:#eef8ff;border-left:6px solid var(--blue);border-radius:16px;padding:14px 16px}.fact-box b{color:var(--blue)}.fact-box p{margin:7px 0 0;line-height:1.5}.challenge-box{margin-top:18px;border:2px dashed #d3e1eb;border-radius:19px;padding:20px;background:#fffdf8}.challenge-label{font-size:12px;font-weight:1000;color:#a36d00;letter-spacing:.1em}.mission-prompt{font-size:19px;font-weight:800;line-height:1.45}.options{display:grid;gap:10px;margin-top:14px}.option{border:2px solid #dbe6ee;border-radius:15px;padding:13px 14px;background:#fff;text-align:left;font-weight:850;cursor:pointer}.option:hover{border-color:#96c7e7}.option.selected{border-color:var(--blue);background:#edf8ff}.option.correct{border-color:var(--green);background:#ecfff5}.option.wrong{border-color:var(--red);background:#fff0f3}.check-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.feedback{min-height:34px;margin-top:12px;font-weight:950}.feedback.ok{color:var(--green)}.feedback.no{color:var(--red)}.mission-actions{margin-top:18px;display:flex;justify-content:space-between;gap:10px}.word-input{width:100%;border:2px solid #cfdee8;border-radius:14px;padding:13px 14px;font-size:18px}.sequence-pool,.sequence-built{display:flex;gap:8px;flex-wrap:wrap;min-height:55px;padding:10px;border-radius:14px;background:#f1f7fa;margin-top:10px}.token{border:0;background:#fff;box-shadow:0 3px 10px rgba(0,0,0,.1);border-radius:12px;padding:10px 12px;font-weight:900;cursor:pointer}.tap-game{display:flex;align-items:center;gap:18px;margin:16px 0}.tap-button{width:92px;height:92px;border:0;border-radius:50%;font-size:39px;background:linear-gradient(145deg,#ffd332,#ffb320);box-shadow:0 9px 0 #d98c0d,0 13px 25px rgba(0,0,0,.14);cursor:pointer}.tap-button:active{transform:translateY(6px);box-shadow:0 3px 0 #d98c0d}.tap-count{font-size:30px;font-weight:1000}.final-progress{height:12px;background:#e4edf4;border-radius:999px;overflow:hidden;margin:12px 0}.final-progress>div{height:100%;background:linear-gradient(90deg,var(--gold),var(--green));transition:.3s}.final-qnum{font-weight:950;color:var(--blue)}
.reward-card,.chest-card,.final-card{width:min(520px,100%);padding:34px;text-align:center;overflow:visible}.reward-burst{position:absolute;inset:-30px;font-size:40px;animation:float 2s ease-in-out infinite alternate;pointer-events:none}@keyframes float{to{transform:rotate(10deg) scale(1.04)}}.reward-star{font-size:95px;filter:drop-shadow(0 10px 10px rgba(0,0,0,.15));animation:pop .5s cubic-bezier(.2,1.6,.4,1)}@keyframes pop{from{transform:scale(.2) rotate(-25deg)}}.reward-card h2,.chest-card h2,.final-card h2{font-size:36px;margin:7px 0}.reward-card p,.chest-card p,.final-card p{color:var(--muted);line-height:1.5}.reward-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.reward-row div{background:#f4faff;border-radius:18px;padding:15px}.reward-row strong{display:block;font-size:25px;color:var(--blue)}.reward-row span{font-size:12px;font-weight:900;color:var(--muted)}.chest-anim{font-size:95px;animation:chestBounce 1s ease-in-out infinite alternate}@keyframes chestBounce{to{transform:translateY(-8px) rotate(3deg)}}.badge-large{width:115px;height:115px;border-radius:50%;display:grid;place-items:center;font-size:63px;background:linear-gradient(145deg,#fff3ad,#ffd23f);margin:10px auto;box-shadow:0 13px 25px rgba(190,132,0,.25);border:6px solid #fff}.chest-card h3{font-size:24px;margin:8px}.bonus{display:inline-block;background:#fff3c8;border-radius:999px;padding:10px 15px;font-weight:1000;color:#8a5b00;margin-bottom:18px}.collection-card,.settings-card{width:min(720px,100%);padding:32px}.collection-card h2,.settings-card h2{font-size:36px;margin:6px 0}.badge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:20px}.badge-item{border:1px solid #dce8f0;background:#f8fcff;border-radius:19px;padding:15px;text-align:center}.badge-item .bi{font-size:48px;display:block}.badge-item.locked{filter:grayscale(1);opacity:.45}.badge-item b{display:block;margin-top:7px}.badge-item small{display:block;color:var(--muted);margin-top:3px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid #e5eef4}.toggle-row span{display:flex;flex-direction:column}.toggle-row small{color:var(--muted);margin-top:4px}.toggle-row input{width:22px;height:22px}.settings-card .danger{margin-top:22px}.zoom-image{max-width:min(92vw,900px);max-height:92vh;object-fit:contain;border-radius:20px;box-shadow:0 30px 80px #000}.trophy{font-size:100px}.certificate{border:8px double #e1b32c;background:#fffaf0;padding:20px;border-radius:12px;margin:18px 0}.certificate span,.certificate small{display:block;color:#6b6045}.certificate strong{display:block;font-size:30px;margin:8px 0;color:#12324b}.final-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}

.release-banner{margin-top:18px;display:inline-flex;align-items:center;gap:8px;max-width:100%;background:#f4faff;border:1px solid #cfe7f7;color:#31556f;border-radius:14px;padding:10px 13px;font-size:13px;font-weight:900;line-height:1.35}
.release-banner.sequential{background:#fff8df;border-color:#f2d980;color:#735a00}.release-banner.teacher{background:#eefbf4;border-color:#b9e7cd;color:#176944}
.release-control-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;margin:18px 0 2px;border-radius:18px;background:#f5faff;border:1px solid #d8eaf5}.release-control-card>div{display:flex;flex-direction:column;gap:4px}.release-control-card small{color:var(--muted);line-height:1.35}.release-control-card button{flex:0 0 auto}
.release-date{display:block;margin-top:5px;font-size:9px!important;color:#8a6a00!important;letter-spacing:.04em}.level .release-date{font-size:9px!important;line-height:1}.cal-day .release-date{font-size:10px!important}
@media(max-width:960px){.hero{grid-template-columns:1fr}.hero-card{min-height:270px}.path{grid-template-columns:repeat(3,1fr)}.path:before{display:none}.calendar{grid-template-columns:repeat(4,1fr)}.how-grid{grid-template-columns:repeat(2,1fr)}.mission-layout{grid-template-columns:1fr}.postcard-pane img{max-height:42vh}.mission-dialog{max-height:94vh;overflow:auto}.game-pane{padding:25px}}
@media(max-width:620px){.release-control-card{align-items:stretch;flex-direction:column}.release-control-card button{width:100%}.release-banner{display:flex}.brand span{display:none}.hud-pill{padding:0 7px}.hud-pill small{display:none}.topbar{padding:9px}.hero-copy{padding:27px 22px}.hero h1{font-size:39px}.hero p{font-size:16px}.view-tabs{overflow:auto}.path{grid-template-columns:repeat(2,1fr)}.calendar{grid-template-columns:repeat(2,1fr)}.how-grid{grid-template-columns:1fr}.world{padding:17px}.world-head{align-items:flex-start}.world-status{display:none}.game-pane{padding:22px 17px}.postcard-pane{padding:18px}.mission-topline{flex-direction:column}.mission-actions{flex-direction:column}.badge-grid{grid-template-columns:repeat(2,1fr)}.reward-card,.chest-card,.final-card{padding:28px 22px}.avatar-picker{grid-template-columns:repeat(4,1fr)}.hero-actions>*{flex:1 1 100%}}
@media print{body>*{display:none!important}#finalOverlay{display:flex!important;position:static;background:white;padding:0}.final-card{box-shadow:none;max-height:none}.final-actions{display:none}.trophy{font-size:70px}}

.edf-back{position:fixed;left:14px;bottom:14px;z-index:90;background:rgba(255,255,255,.96);color:#0b5ea8;text-decoration:none;border:1px solid #cfe5f4;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:1000;box-shadow:0 8px 24px rgba(12,63,98,.18)}.edf-back:hover{background:#eaf7ff}@media(max-width:620px){.edf-back{left:8px;bottom:8px;font-size:10px;padding:7px 10px}}
