@font-face{font-family:"Baloo 2";font-style:normal;font-weight:400 800;font-display:swap;src:url(./Baloo2-latin-B_TVFhwJ.woff2) format("woff2")}:root{--hijau-900: #14532d;--hijau-700: #1f6f4a;--hijau-500: #2f9e6b;--hijau-100: #d8f3e3;--krem-50: #fffdf7;--krem-100: #fff7e6;--krem-200: #ffe9bf;--oranye-600: #d97706;--oranye-500: #f59e0b;--oranye-100: #fef3c7;--merah-600: #dc2626;--merah-100: #fee2e2;--biru-600: #2563eb;--biru-100: #dbeafe;--teks: #1f2937;--teks-lemah: #4b5563;--garis: #e5e7eb;--putih: #ffffff;--bayangan: 0 4px 14px rgba(31, 111, 74, .12);--bayangan-lg: 0 10px 30px rgba(31, 111, 74, .18);--radius: 16px;--radius-sm: 10px;--tap: 44px;--font-display: "Baloo 2", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;color:var(--teks);background:var(--krem-100);-webkit-text-size-adjust:100%;text-size-adjust:100%}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{background:radial-gradient(circle at 12% 0%,#fff8e8,#fff8e800 45%),radial-gradient(circle at 100% 100%,#e6f7ee,#e6f7ee00 40%),var(--krem-100);min-height:100dvh}#app{max-width:720px;margin:0 auto;padding:clamp(12px,3vw,24px);min-height:100dvh;display:flex;flex-direction:column}:focus-visible{outline:3px solid var(--biru-600);outline-offset:2px;border-radius:6px}button{font-family:inherit;font-size:1rem;cursor:pointer;border:none;background:none}.screen{animation:masuk .28s ease-out;display:flex;flex-direction:column;gap:16px;flex:1}@keyframes masuk{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}h1,h2,h3{margin:0;line-height:1.25;font-family:var(--font-display);letter-spacing:.2px}p{margin:0;line-height:1.55}.hero{text-align:center;padding:12px 0 4px}.hero .emoji{font-size:clamp(2.6rem,12vw,4rem);line-height:1}.hero h1{font-size:clamp(1.6rem,7vw,2.4rem);color:var(--hijau-900);letter-spacing:-.02em}.hero .subjudul{color:var(--oranye-600);font-weight:700;margin-top:6px}.card{background:var(--putih);border-radius:var(--radius);padding:clamp(14px,4vw,20px);box-shadow:var(--bayangan);border:1px solid rgba(31,111,74,.06)}.card.info{background:var(--hijau-100);border-color:#1f6f4a26}.card.jujur{background:var(--oranye-100);border-color:#d9770633}.card.warn{background:var(--krem-200);border-color:#d977064d}.muted{color:var(--teks-lemah);font-size:.95rem}.label-kecil{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--hijau-700)}ul.tujuan{margin:8px 0 0;padding-left:1.2em;display:grid;gap:6px}ul.tujuan li{line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:12px 20px;border-radius:999px;font-family:var(--font-display);font-weight:700;font-size:1.05rem;background:var(--hijau-700);color:var(--putih);box-shadow:0 3px 0 var(--hijau-900);transition:transform .08s ease,background .15s ease;text-decoration:none}.btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--hijau-900)}.btn.secondary{background:var(--putih);color:var(--hijau-700);border:2px solid var(--hijau-700);box-shadow:0 3px 0 var(--hijau-100)}.btn.warn{background:var(--oranye-500);box-shadow:0 3px 0 var(--oranye-600)}.btn.danger{background:var(--merah-600);box-shadow:0 3px #991b1b}.btn.ghost{background:transparent;color:var(--teks-lemah);box-shadow:none;border:1px solid var(--garis)}.btn.block{width:100%}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.row{display:flex;gap:12px;flex-wrap:wrap}.row.center{justify-content:center}.stack{display:grid;gap:12px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.topbar h2{font-size:1.05rem;color:var(--hijau-900)}.hud-chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.chip{display:inline-flex;align-items:center;gap:5px;background:var(--putih);border-radius:999px;padding:6px 12px;font-weight:700;font-size:.95rem;box-shadow:var(--bayangan);border:1px solid var(--garis)}.chip.progress{color:var(--hijau-700)}.peta{display:grid;gap:14px}.level-card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;background:var(--putih);border-radius:var(--radius);padding:16px;box-shadow:var(--bayangan);border:2px solid transparent;text-align:left;width:100%;transition:transform .1s ease,border-color .15s ease}.level-card.terbuka{border-color:var(--hijau-500)}.level-card.terbuka:active{transform:scale(.99)}.level-card.terkunci{opacity:.7;cursor:not-allowed}.level-card .nomor{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:1.4rem;font-weight:800;background:var(--hijau-100);color:var(--hijau-900);flex-shrink:0}.level-card.boss .nomor{background:var(--merah-100);color:var(--merah-600)}.level-card h3{font-size:1.1rem;color:var(--hijau-900)}.level-card .bintang{font-size:1.1rem;letter-spacing:1px;margin-top:2px}.bintang .on{color:var(--oranye-500)}.bintang .off{color:var(--garis)}.prompt{font-weight:600}.opsi{display:grid;gap:10px}.opsi button{text-align:left;background:var(--putih);border:2px solid var(--garis);border-radius:var(--radius-sm);padding:14px 16px;font-size:1.05rem;min-height:var(--tap);font-weight:600;color:var(--teks);transition:border-color .12s ease,background .12s ease}.opsi button:hover{border-color:var(--hijau-500);background:#f7fdf9}.opsi button.pilih{border-color:var(--hijau-700);background:var(--hijau-100)}.opsi button.benar{border-color:var(--hijau-700);background:var(--hijau-100);color:var(--hijau-900)}.opsi button.salah{border-color:var(--merah-600);background:var(--merah-100);color:#991b1b}.isian{flex:1;min-height:var(--tap);border:2px solid var(--garis);border-radius:var(--radius-sm);padding:0 14px;font-size:1.2rem;font-weight:700;color:var(--teks);background:var(--putih)}.isian:focus{border-color:var(--hijau-500);outline:none}.prefix{display:flex;align-items:center;padding:0 12px;background:var(--krem-100);border-radius:var(--radius-sm);font-weight:700;color:var(--teks-lemah)}.umpan{border-radius:var(--radius);padding:14px 16px;border:2px solid;animation:masuk .25s ease-out}.umpan.benar{background:var(--hijau-100);border-color:var(--hijau-500)}.umpan.salah{background:var(--merah-100);border-color:var(--merah-600)}.umpan h3{font-size:1.05rem;margin-bottom:6px}.umpan.benar h3{color:var(--hijau-900)}.umpan.salah h3{color:#991b1b}.tabel-wrap{overflow-x:auto;border-radius:var(--radius-sm);border:1px solid var(--garis)}table.tabel-data{width:100%;border-collapse:collapse;font-size:1rem;background:var(--putih)}table.tabel-data th,table.tabel-data td{padding:10px 12px;text-align:center;border-bottom:1px solid var(--garis);white-space:nowrap}table.tabel-data th{background:var(--hijau-700);color:var(--putih);font-weight:700}table.tabel-data tr:last-child td{border-bottom:none}.meta-baris{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed var(--garis);font-size:.96rem}.meta-baris:last-child{border-bottom:none}.meta-baris .k{color:var(--teks-lemah);font-weight:600}.meta-baris .v{font-weight:700;text-align:right}.ringkas-level{display:grid;gap:8px}.ringkas-baris{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--krem-50);border:1px solid var(--garis);border-radius:var(--radius-sm);padding:10px 14px}.sertifikat{background:linear-gradient(160deg,#fffdf7,#fff3d6);border:3px double var(--oranye-500);border-radius:var(--radius);padding:clamp(18px,5vw,28px);text-align:center}.sertifikat h2{color:var(--hijau-900);font-size:1.4rem}.sertifikat .nama-pemain{font-size:1.5rem;font-weight:800;color:var(--oranye-600);margin:8px 0;border-bottom:2px solid var(--oranye-500);display:inline-block;padding:0 16px 4px}.footer-note{text-align:center;color:var(--teks-lemah);font-size:.82rem;padding:8px 0 4px}.langkah{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;background:var(--putih);border-radius:var(--radius);padding:16px;box-shadow:var(--bayangan)}.langkah .ikon{font-size:1.8rem;width:44px;height:44px;display:grid;place-items:center;background:var(--hijau-100);border-radius:12px}@media(max-width:380px){.level-card{grid-template-columns:auto 1fr}.level-card .bintang{grid-column:2}}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}body.world-mode{overflow:hidden}body.world-mode #app{max-width:none;padding:0;display:block;position:fixed;inset:0}.world-canvas{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.center-screen{align-items:center;justify-content:center;min-height:100dvh}.loader{width:100%;height:8px;border-radius:999px;background:var(--hijau-100);overflow:hidden;margin-top:12px}.loader:after{content:"";display:block;height:100%;width:40%;background:var(--hijau-500);border-radius:999px;animation:loading 1.1s ease-in-out infinite}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(320%)}}.hud-3d{position:fixed;inset:0;pointer-events:none;z-index:20}.hud-stats{position:absolute;top:max(10px,env(safe-area-inset-top));left:12px;display:flex;gap:8px;flex-wrap:wrap;pointer-events:auto}.joystick-host{position:absolute;left:18px;bottom:max(24px,env(safe-area-inset-bottom));pointer-events:auto}.joystick-base{width:128px;height:128px;border-radius:50%;background:#ffffff61;border:2px solid rgba(31,111,74,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;touch-action:none;position:relative}.joystick-knob{width:56px;height:56px;border-radius:50%;background:#1f6f4ad9;box-shadow:0 4px 12px #00000040;pointer-events:none}.hud-actions{position:absolute;right:18px;bottom:max(24px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:flex-end;gap:12px;pointer-events:auto}.btn-action{min-width:64px;height:64px;padding:0 16px;border-radius:999px;font-size:1rem;font-weight:800;color:var(--putih);background:var(--hijau-700);box-shadow:0 4px 14px #00000047;display:inline-flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.5)}.btn-action.interact{background:var(--oranye-500);font-size:.95rem}.btn-action.menu{min-width:54px;height:54px;background:#ffffffe6;color:var(--hijau-900)}.btn-action.hidden{display:none}.overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:center;padding:12px;background:#0c1e146b;overflow-y:auto}.dialog-overlay{align-items:flex-end}.dialog-panel{background:var(--putih);border-radius:var(--radius);padding:18px;width:100%;max-width:520px;box-shadow:var(--bayangan-lg);border-top:6px solid var(--hijau-500);animation:naik .24s ease-out}@keyframes naik{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.dialog-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.dialog-avatar{width:40px;height:40px;display:grid;place-items:center;background:var(--hijau-100);border-radius:50%;font-size:1.3rem}.dialog-text{color:var(--teks);margin-bottom:14px;font-size:1.05rem;line-height:1.55}.toast{position:fixed;left:50%;bottom:30%;transform:translate(-50%);background:#14281ceb;color:var(--putih);padding:12px 18px;border-radius:999px;font-weight:600;font-size:.95rem;z-index:60;max-width:90vw;text-align:center;animation:naik .2s ease-out}.mute-btn{position:fixed;top:max(8px,env(safe-area-inset-top));right:8px;z-index:70;min-height:40px;padding:8px 12px;background:var(--putih);box-shadow:var(--bayangan);border:1px solid var(--garis);border-radius:999px;font-size:1.1rem}@media(max-width:480px){.joystick-base{width:112px;height:112px}.joystick-knob{width:48px;height:48px}.btn-action{min-width:58px;height:58px}}.intro-screen{gap:18px}.sampul{position:relative;margin:calc(-1*clamp(14px,4vw,22px)) calc(-1*clamp(14px,4vw,22px)) calc(-1*clamp(6px,2vw,10px));border-radius:0 0 var(--radius) var(--radius);overflow:hidden;box-shadow:inset 0 -18px 28px -18px #1f6f4a59}.cover-hero{padding-top:clamp(14px,6vh,44px)}.cover-emoji{font-size:clamp(3rem,16vw,5rem)}.cover-judul{font-size:clamp(1.7rem,8vw,2.6rem);line-height:1.1;letter-spacing:-.5px}.center-text{text-align:center}.pilih-karakter-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px 0}.pilih-karakter{background:var(--putih);border:3px solid var(--garis);border-radius:var(--radius);padding:clamp(14px,5vw,24px) 10px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.pilih-karakter:active{transform:scale(.97)}.pilih-karakter.dipilih{border-color:var(--hijau-500);box-shadow:0 0 0 4px #2f9e6b2e}.karakter-emoji{font-size:clamp(2.6rem,13vw,3.6rem);line-height:1}.karakter-emoji.kecil{font-size:2.4rem}.karakter-preview{width:clamp(120px,42vw,176px);height:clamp(120px,42vw,176px);display:block;border-radius:12px;background:radial-gradient(circle at 50% 30%,var(--hijau-100),transparent 70%)}.karakter-label{font-family:var(--font-display);font-weight:700;color:var(--hijau-900)}.karakter-tagline{font-size:.82rem;color:var(--teks-lemah)}.loading-overlay{align-items:center;z-index:90;background:#0c1e14b8;transition:opacity .2s ease}.loading-overlay.selesai{opacity:0}.loading-box{background:var(--krem-100);border-radius:var(--radius);padding:clamp(22px,7vw,36px) clamp(18px,6vw,30px);text-align:center;max-width:420px;width:100%;box-shadow:var(--bayangan-lg);animation:naik .22s ease-out}.loading-logo{font-size:2.6rem;line-height:1;margin-bottom:10px;animation:goyang 2.4s ease-in-out infinite}@keyframes goyang{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}.spinner{width:48px;height:48px;margin:8px auto 16px;border-radius:50%;background:conic-gradient(from 0deg,rgba(47,158,107,0) 0%,var(--hijau-500) 65%,var(--oranye-500) 92%,rgba(47,158,107,0) 100%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));animation:putar .9s linear infinite}@keyframes putar{to{transform:rotate(360deg)}}.loading-pesan{font-family:var(--font-display);font-weight:700;color:var(--hijau-900);margin-bottom:6px}.loading-tip{font-size:.9rem}.peta-bar{position:fixed;top:max(8px,env(safe-area-inset-top));left:8px;right:64px;z-index:45;display:flex;align-items:center;gap:8px;pointer-events:none}.peta-bar>*{pointer-events:auto}.peta-bar .chip{background:var(--putih);box-shadow:var(--bayangan)}.btn.kecil{min-height:40px;padding:8px 12px;font-size:.9rem}.guru-panel{display:flex;flex-direction:column;gap:12px}.guru-hero{padding:12px 0 4px}.token-card{text-align:center;border:3px solid var(--hijau-500);background:linear-gradient(180deg,var(--hijau-100),var(--putih))}.token-besar{font-family:var(--font-display, inherit);font-size:3rem;font-weight:800;letter-spacing:.4rem;color:var(--hijau-900);margin:6px 0 10px}.row-tombol{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.ringkas-kelas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.chip-guru{background:var(--putih);border-radius:var(--radius-sm);box-shadow:var(--bayangan);padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:2px}.chip-guru .nilai{font-weight:800;font-size:1.1rem;color:var(--hijau-900)}.chip-guru .label{font-size:.7rem;color:var(--teks-lemah);text-align:center}.daftar-siswa{display:flex;flex-direction:column;gap:8px}.kartu-siswa{background:var(--putih);border:2px solid var(--garis);border-radius:var(--radius-sm);padding:10px 12px;box-shadow:var(--bayangan)}.kartu-siswa.online{border-color:var(--hijau-500)}.kepala-siswa{display:flex;align-items:center;gap:8px;margin-bottom:6px}.dot-status{width:10px;height:10px;border-radius:50%;background:#cbd5e1;flex:none}.kartu-siswa.online .dot-status{background:var(--hijau-500);box-shadow:0 0 0 3px var(--hijau-100)}.nama-siswa{font-weight:700;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.baris-stat{display:flex;gap:10px;flex-wrap:wrap;font-size:.85rem;color:var(--teks-lemah)}.kecil-teks{font-size:.8rem}.pilih-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:4px 0}.mode-kartu{text-align:left;background:var(--putih);border:3px solid var(--garis);border-radius:var(--radius);padding:12px;cursor:pointer;box-shadow:var(--bayangan)}.mode-kartu.dipilih{border-color:var(--hijau-500);background:var(--hijau-100)}.mode-judul{font-weight:700;margin-bottom:4px}.mode-ket{font-size:.78rem;color:var(--teks-lemah)}.token-input{letter-spacing:.6rem;text-align:center;font-size:1.4rem;font-weight:800}.token-blok{border:3px solid var(--biru-600);background:var(--biru-100)}.chip.online{background:var(--biru-600);color:#fff}.btn-action.sapa{background:var(--krem-200);color:var(--teks)}.sapa-bar{position:fixed;right:12px;bottom:calc(88px + env(safe-area-inset-bottom));z-index:50;display:none;flex-direction:column;gap:6px;background:var(--putih);border-radius:var(--radius);padding:8px;box-shadow:var(--bayangan-lg)}.sapa-bar.tampil{display:flex}.btn-sapa{font-size:1.4rem;line-height:1;background:transparent;border:none;cursor:pointer;padding:4px 6px;border-radius:var(--radius-sm)}.btn-sapa:hover,.btn-sapa:active{background:var(--hijau-100)}.warna-panggung{display:flex;justify-content:center;background:radial-gradient(circle at 50% 30%,var(--hijau-100) 0%,var(--putih) 70%);border-radius:var(--radius);box-shadow:var(--bayangan);padding:8px}.karakter-preview.preview-besar{width:240px;height:240px;max-width:100%;position:relative;z-index:1}.warna-baris{background:var(--putih);border-radius:var(--radius);box-shadow:var(--bayangan);padding:10px 12px}.warna-label{font-weight:700;font-size:.9rem;margin-bottom:8px;color:var(--hijau-900)}.warna-opsi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.warna-tombol{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 4px;background:var(--krem-50);border:3px solid var(--garis);border-radius:var(--radius-sm);cursor:pointer;font:inherit}.warna-tombol.dipilih{border-color:var(--hijau-500);background:var(--hijau-100)}.warna-tombol:active{transform:scale(.97)}.warna-bulatan{width:30px;height:30px;border-radius:50%;border:2px solid rgba(0,0,0,.15);box-shadow:inset 0 -3px 6px #0000001f}.warna-tombol.dipilih .warna-bulatan{box-shadow:inset 0 -3px 6px #0000001f,0 0 0 3px var(--putih),0 0 0 5px var(--hijau-500)}.warna-nama{font-size:.68rem;color:var(--teks-lemah);text-align:center;line-height:1.15}.misi-bar{position:absolute;top:max(8px,env(safe-area-inset-top));left:8px;right:60px;background:#fffdf7f0;border-radius:14px;padding:6px 10px 8px;box-shadow:var(--bayangan);pointer-events:auto;border-left:5px solid var(--oranye-500)}.misi-langkah{display:flex;gap:4px;margin-bottom:3px}.misi-langkah span{flex:1;font-size:.68rem;font-weight:700;text-align:center;color:var(--teks-lemah);background:var(--garis);border-radius:999px;padding:1px 0}.misi-langkah span.lewat{background:var(--hijau-100);color:var(--hijau-700)}.misi-langkah span.aktif{background:var(--oranye-500);color:#fff}.misi-teks{font-size:.88rem;font-weight:700;color:var(--hijau-900);line-height:1.3}.hud-3d .hud-stats{top:calc(max(8px,env(safe-area-inset-top)) + 66px);left:8px}.hud-stats .chip,.peta-bar .chip.tas{background:#fffffff0;box-shadow:var(--bayangan)}.chip.tas{font-weight:800;cursor:pointer}.chip.hidden,.btn-action.sapa.hidden{display:none}.vn-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:10px 10px max(10px,env(safe-area-inset-bottom));background:linear-gradient(to top,#0c1e148c,#0c1e1400 55%)}.vn-overlay.tersembunyi{display:none}.vn-kotak{width:100%;max-width:620px;background:var(--krem-50);border-radius:18px;padding:14px 14px 10px;box-shadow:var(--bayangan-lg);border:3px solid #fff;animation:naik .22s ease-out;max-height:78dvh;overflow-y:auto}.vn-kotak.pemain{background:#fff8eb}.vn-kepala{display:flex;align-items:center;gap:10px;margin-bottom:6px}.vn-potret{width:52px;height:52px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:1.7rem;background:#fff;border:4px solid var(--warna-tokoh, var(--hijau-500));box-shadow:var(--bayangan)}.vn-identitas{flex:1;min-width:0}.vn-nama{font-family:var(--font-display);font-weight:800;font-size:1.1rem;color:var(--hijau-900);line-height:1.1}.vn-peran{font-size:.78rem;color:var(--teks-lemah)}.vn-suara,.vn-suara-onoff{background:#fff;border:1px solid var(--garis);border-radius:999px;min-height:38px;padding:4px 10px;font-size:1rem}.vn-suara-onoff{display:block;margin:8px auto 0;font-size:.78rem;color:var(--teks-lemah);min-height:30px}.vn-suara.hidden,.vn-suara-onoff.hidden{display:none}.vn-teks{font-size:1.08rem;line-height:1.55;margin:4px 0 10px;min-height:3.1em;color:var(--teks)}.vn-aksi{display:flex;flex-direction:column;gap:8px}.vn-pilihan{display:flex;align-items:center;gap:10px;text-align:left;width:100%;min-height:var(--tap);padding:10px 14px;border-radius:14px;background:#fff;border:2px solid var(--garis);font-size:1rem;font-weight:600;color:var(--teks);transition:transform .08s ease,border-color .15s ease}.vn-pilihan:active{transform:scale(.98)}.vn-pilihan.balas{border-color:var(--oranye-500);background:var(--oranye-100)}.vn-pilihan.benar{border-color:var(--hijau-500);background:var(--hijau-100)}.vn-pilihan.salah{border-color:var(--merah-600);background:var(--merah-100);animation:goyang .35s}.vn-huruf{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--hijau-700);color:#fff;font-weight:800}.vn-tambahan:empty{display:none}.vn-tambahan{margin-bottom:8px}.tantangan-kepala{display:flex;justify-content:space-between;align-items:center;gap:8px}.chip.benar{background:var(--hijau-100);color:var(--hijau-900)}.obor{display:flex;gap:4px;font-size:1.35rem}.obor .padam{opacity:.45;filter:grayscale(1)}.obor .nyala{animation:kedip 1.2s infinite}@keyframes goyang{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes kedip{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.cerita-overlay{position:fixed;inset:0;z-index:55;background:#0f172a99;display:flex;justify-content:center;align-items:stretch;padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom))}.cerita-buku{width:100%;max-width:640px;background:#fffaf0;border-radius:18px;overflow-y:auto;padding:14px;box-shadow:var(--bayangan-lg);border-top:8px solid var(--aksen, var(--hijau-500));display:flex;flex-direction:column;gap:10px;animation:buka-buku .3s ease-out}@keyframes buka-buku{0%{transform:perspective(800px) rotateY(-12deg) scale(.96);opacity:0}to{transform:none;opacity:1}}.cerita-kepala{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding-right:48px}.cerita-bab{font-size:.78rem;font-weight:700;color:var(--teks-lemah)}.cerita-judul{font-family:var(--font-display);font-size:1.25rem;color:var(--hijau-900);margin:0;line-height:1.2}.cerita-titik{display:flex;gap:5px;padding-top:6px}.cerita-titik span{width:10px;height:10px;border-radius:50%;background:var(--garis)}.cerita-titik span.lewat{background:var(--hijau-500)}.cerita-titik span.aktif{background:var(--oranye-500);transform:scale(1.3)}.cerita-panggung{border-radius:14px;overflow:hidden;box-shadow:inset 0 0 0 3px #fff,var(--bayangan);background:#fff}.cerita-svg{display:block;width:100%;height:auto;aspect-ratio:320 / 200}.cerita-label{paint-order:stroke;stroke:#ffffffbf;stroke-width:3px;font-family:var(--font-display)}.cerita-narasi p{margin:0 0 8px;font-size:1.05rem;line-height:1.55;padding:6px 10px;border-radius:10px;transition:background .2s}.cerita-narasi p.dibaca{background:var(--oranye-100)}.cerita-alat{display:flex;justify-content:flex-end}.cerita-navigasi{display:flex;gap:8px;margin-top:4px}.cerita-navigasi .btn{flex:1}.cerita-navigasi .btn:disabled{opacity:.55}.cerita-kunci,.cerita-hikmah{background:var(--oranye-100);border-radius:14px;padding:12px 14px;border:2px solid var(--krem-200)}.cerita-hikmah{background:var(--hijau-100);border-color:#bbf7d0}.cerita-kunci p,.cerita-hikmah p{margin:4px 0 0;font-size:1.02rem}.cerita-lengkap summary{cursor:pointer;font-weight:700;padding:10px 0;color:var(--hijau-700)}.cerita-poin{margin:6px 0}.cerita-poin p{margin:2px 0 0}.cerita-interaksi{background:#fff;border-radius:14px;padding:12px;border:2px dashed var(--oranye-500);display:flex;flex-direction:column;gap:10px;align-items:stretch}.cerita-soal{margin:0;font-weight:800;font-size:1.02rem;color:var(--hijau-900)}.cerita-kartu{align-self:center;min-width:180px;padding:12px 18px;border-radius:16px;background:var(--krem-100);display:flex;flex-direction:column;align-items:center;gap:4px;box-shadow:var(--bayangan)}.cerita-kartu.goyang{animation:goyang .35s}.cerita-kartu-emoji{font-size:2.6rem}.cerita-kartu-nama{font-weight:700;text-align:center}.cerita-kelompok{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.cerita-umpan{margin:0;text-align:center;font-size:.92rem;color:var(--teks-lemah);min-height:1.2em}.cerita-urut{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.cerita-urut-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px;border-radius:12px;background:var(--krem-100);border:2px solid var(--garis);font-weight:700;min-height:64px}.cerita-urut-item span:first-child{font-size:1.7rem}.cerita-urut-item.benar{background:var(--hijau-100);border-color:var(--hijau-500);opacity:.6}.cerita-urut-item.goyang{animation:goyang .35s}.cerita-susunan{display:flex;flex-wrap:wrap;gap:4px;min-height:1.6em;font-weight:700;color:var(--hijau-700)}.cerita-pilih{display:flex;flex-direction:column;gap:8px}.anim-melayang{animation:a-melayang 3s ease-in-out infinite}.anim-geser{animation:a-geser 2.4s ease-in-out infinite}.anim-geser-balik{animation:a-geser-balik 2.4s ease-in-out infinite}.anim-kedip{animation:a-kedip 1.4s ease-in-out infinite}.anim-putar{animation:a-putar 6s linear infinite}.anim-denyut{animation:a-denyut 2s ease-in-out infinite}.anim-jatuh{animation:a-jatuh 1.8s ease-in infinite}.anim-naik{animation:a-naik 2.2s ease-out infinite}.anim-goyang{animation:a-goyang 1.6s ease-in-out infinite}.anim-getar{animation:a-getar .3s linear infinite}.anim-muncul{animation:a-muncul .6s ease-out both}.anim-gambar{stroke-dasharray:var(--panjang, 200);stroke-dashoffset:var(--panjang, 200);animation:a-gambar 1s ease-out forwards}g[class^=anim-]{transform-box:view-box}@keyframes a-melayang{0%,to{transform:translate(0)}50%{transform:translate(6px,-8px)}}@keyframes a-geser{0%,to{transform:translate(-8px)}50%{transform:translate(10px)}}@keyframes a-geser-balik{0%,to{transform:translate(8px)}50%{transform:translate(-10px)}}@keyframes a-kedip{0%,to{opacity:1}50%{opacity:.35}}@keyframes a-putar{to{transform:rotate(360deg)}}@keyframes a-denyut{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes a-jatuh{0%{transform:translateY(-14px);opacity:0}30%{opacity:1}to{transform:translateY(16px);opacity:0}}@keyframes a-naik{0%{transform:translateY(10px) scale(.85);opacity:.4}to{transform:translateY(-4px) scale(1);opacity:1}}@keyframes a-goyang{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}@keyframes a-getar{0%,to{transform:translate(0)}25%{transform:translate(-2px,1px)}75%{transform:translate(2px,-1px)}}@keyframes a-muncul{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes a-gambar{to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){[class^=anim-]{animation:none!important;stroke-dashoffset:0!important;opacity:1!important}}.cut-overlay{position:fixed;inset:0;z-index:80;background:#0b1324;display:flex;flex-direction:column}.cut-adegan{flex:1;position:relative;overflow:hidden;display:grid;place-items:center;transition:background .6s}.cut-gambar{font-size:min(34vw,200px);filter:drop-shadow(0 10px 20px rgba(0,0,0,.35));z-index:2}.cut-laut{position:absolute;left:-10%;right:-10%;bottom:-10%;height:38%;background:#0369a1;border-radius:50% 50% 0 0;animation:a-geser 3s ease-in-out infinite}.cut-hujan{position:absolute;inset:0;display:none;background-image:repeating-linear-gradient(105deg,rgba(255,255,255,.16) 0 2px,transparent 2px 22px);animation:hujan .4s linear infinite}@keyframes hujan{to{background-position:-22px 60px}}.cut-kapal{background:linear-gradient(#7dd3fc,#e0f2fe)}.cut-kapal .cut-gambar{animation:a-goyang 3s ease-in-out infinite}.cut-badai{background:linear-gradient(#1e293b,#475569)}.cut-badai .cut-hujan{display:block}.cut-badai .cut-gambar{animation:a-getar .25s linear infinite}.cut-badai .cut-laut{background:#1e3a5f;height:46%;animation-duration:1.2s}.cut-ombak{background:linear-gradient(#0f172a,#334155)}.cut-ombak .cut-hujan{display:block}.cut-ombak .cut-gambar{animation:a-melayang 1s ease-in-out infinite;font-size:min(50vw,260px)}.cut-ombak .cut-laut{height:60%;background:#0c4a6e;animation-duration:.9s}.cut-putih{background:#fff}.cut-putih .cut-laut{display:none}.cut-goa{background:radial-gradient(circle at 50% 20%,#fde68a 0,#44403c 30%,#0c0a09 70%)}.cut-goa .cut-laut{display:none}.cut-mercusuar{background:linear-gradient(#0f172a,#1e3a8a)}.cut-mercusuar .cut-gambar{animation:a-denyut 1.6s ease-in-out infinite;filter:drop-shadow(0 0 40px #fde047)}.cut-kapal-datang{background:linear-gradient(#1e3a8a,#f59e0b)}.cut-kapal-datang .cut-gambar{animation:a-geser 4s ease-in-out infinite}.cut-pantai{background:linear-gradient(#fcd34d,#fde68a)}.cut-teks{background:var(--krem-50);padding:16px 16px max(16px,env(safe-area-inset-bottom));border-radius:20px 20px 0 0;max-width:720px;width:100%;margin:0 auto}.cut-penutur{font-weight:800;color:var(--hijau-700);font-family:var(--font-display)}.cut-teks p{font-size:1.12rem;line-height:1.55;margin:6px 0 12px}.cut-aksi{display:flex;justify-content:space-between;gap:10px}.cut-aksi .btn:last-child{flex:1}.hadiah-overlay{align-items:center;z-index:60}.hadiah-kartu{background:#fff;border-radius:22px;padding:20px;max-width:420px;width:100%;text-align:center;box-shadow:var(--bayangan-lg);border-top:8px solid var(--oranye-500);animation:muncul-hadiah .4s cubic-bezier(.2,1.4,.5,1);max-height:92dvh;overflow-y:auto}@keyframes muncul-hadiah{0%{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}.hadiah-label{font-weight:800;color:var(--oranye-600)}.hadiah-emoji{font-size:4.5rem;animation:a-denyut 1.6s ease-in-out infinite}.hadiah-kartu h2{margin:4px 0;font-family:var(--font-display);color:var(--hijau-900)}.hadiah-bintang{font-size:1.8rem;margin:6px 0}.hadiah-kartu .card{text-align:left}.hadiah-berikut{font-weight:700;color:var(--hijau-700)}.tas-panel{max-height:88dvh;overflow-y:auto}.tas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:10px 0 14px}.tas-item{background:#f1f5f9;border-radius:14px;padding:10px;text-align:center;opacity:.7}.tas-item.punya{background:var(--oranye-100);opacity:1;border:2px solid var(--krem-200)}.tas-emoji{font-size:2rem}.tas-nama{font-weight:800;font-size:.92rem}.tas-ket{font-size:.78rem;color:var(--teks-lemah)}.final-screen{background:linear-gradient(#0f172a,#1e3a8a 55%,#0369a1);color:#fff;border-radius:var(--radius);padding:16px}.final-kepala h2{font-family:var(--font-display);margin:0;color:#fde68a}.final-kepala .muted{color:#cbd5e1}.menara{display:flex;flex-direction:column;align-items:center;gap:6px;margin:14px 0}.menara-lampu{font-size:2.6rem;width:72px;height:72px;display:grid;place-items:center;border-radius:50%;background:#334155}.menara-lampu.nyala{background:#fde047;box-shadow:0 0 40px 14px #fde04799}.menara-lantai{width:min(100%,360px);background:#ffffff1f;border:2px solid rgba(255,255,255,.25);border-radius:12px;padding:8px 12px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"nama chip" "penjaga chip";font-size:.9rem}.menara-lantai strong{grid-area:nama}.menara-lantai span:not(.chip){grid-area:penjaga;color:#cbd5e1;font-size:.78rem}.menara-lantai .chip{grid-area:chip;align-self:center}.menara-lantai.tuntas{background:#22c55e40;border-color:#86efac}.menara-lantai.belum{background:#fbbf2433;border-color:#fcd34d}.final-status{text-align:center;font-weight:700;margin-bottom:12px;color:#fde68a}.menara-lantai .chip{color:var(--hijau-900);background:#fff}.final-screen .btn.ghost,.final-screen .btn.secondary{color:#fff;border-color:#fff9;background:#ffffff14}.guru-tabs{display:flex;gap:6px;background:#fff;padding:4px;border-radius:999px;box-shadow:var(--bayangan)}.guru-tab{flex:1;min-height:40px;border-radius:999px;font-weight:700;color:var(--teks-lemah)}.guru-tab.aktif{background:var(--hijau-700);color:#fff}.tabel-gulir{overflow-x:auto;margin:8px 0}.matriks{border-collapse:collapse;font-size:.85rem;min-width:100%}.matriks th,.matriks td{border:1px solid var(--garis);padding:4px 6px;text-align:center}.matriks .nama-sel,.matriks.detail td:first-child{text-align:left;white-space:nowrap;font-weight:600}.matriks .sel-lulus{background:#dcfce7}.matriks .sel-bantuan{background:#fee2e2}.matriks .sel-cerita{background:#fef9c3}.matriks .sel-misi{background:#e0f2fe}.bar-materi{display:grid;grid-template-columns:9.5rem 1fr 5.5rem;gap:6px;align-items:center;font-size:.82rem;margin:6px 0}.bar-isi{height:12px;background:var(--garis);border-radius:999px;overflow:hidden}.bar-isi span{display:block;height:100%;background:var(--hijau-500)}.bar-nilai{text-align:right;color:var(--teks-lemah)}.soal-guru p{margin:6px 0 0}.miskonsepsi{color:var(--merah-600);font-weight:700}.kartu-siswa[role=button]{cursor:pointer}.vn-potret.ada-gambar,.cerita-potret.ada-gambar,.hadiah-potret.ada-gambar{background-size:cover;background-position:center 20%;background-color:#fff}.vn-potret{width:64px;height:64px}.cerita-kepala{align-items:center}.cerita-kepala-teks{flex:1;min-width:0}.cerita-potret{width:52px;height:52px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:1.6rem;background:#fff;border:3px solid var(--aksen, var(--hijau-500))}.hadiah-potret{width:92px;height:92px;margin:0 auto 8px;border-radius:50%;border:4px solid var(--oranye-500);display:none}.hadiah-potret.ada-gambar{display:block}.cut-ilustrasi,.cut-buram{position:absolute;inset:0;background-repeat:no-repeat;background-position:center;z-index:3}.cut-ilustrasi{background-size:contain}.cut-buram{background-size:cover;filter:blur(18px) brightness(.75);transform:scale(1.15);z-index:2}.cut-adegan.dengan-gambar .cut-gambar,.cut-adegan.dengan-gambar .cut-laut{display:none}.cut-adegan.dengan-gambar .cut-hujan{z-index:4}.cut-adegan.dengan-gambar .cut-ilustrasi{animation:geser-pelan 9s ease-in-out infinite alternate}@keyframes geser-pelan{0%{transform:scale(1)}to{transform:scale(1.06)}}.sampul.dengan-gambar{box-shadow:none}.sampul-gambar{display:block;width:100%;height:clamp(260px,62vh,520px);object-fit:cover;object-position:center 30%}
