@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,40vw,190px);height:auto;aspect-ratio:240 / 340;max-width:100%;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:auto;aspect-ratio:240 / 340;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)}.nyawa{display:flex;gap:4px;font-size:1.35rem;line-height:1}.nyawa .hilang{opacity:.55}.nyawa .ada{animation:kedip .7s 1}.nyawa .ada:nth-child(2){animation-delay:.15s}.nyawa .ada:nth-child(3){animation-delay:.3s}@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{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}.anim-alir,.anim-alir-padam{stroke-dasharray:3 9;stroke-linecap:round}.anim-alir{animation:a-alir .7s linear infinite}.anim-alir-padam{animation:a-alir .7s linear infinite,a-alir-padam 6s step-end infinite}.anim-nyala-padam{animation:a-nyala-padam 6s ease-in-out infinite}.anim-tanda-putus{animation:a-tanda-putus 6s ease-out infinite}@keyframes a-alir{to{stroke-dashoffset:-12}}@keyframes a-alir-padam{0%{opacity:1}50%{opacity:0}}@keyframes a-nyala-padam{0%,45%{opacity:1;filter:none}52%,95%{opacity:.28;filter:grayscale(1)}to{opacity:1;filter:none}}@keyframes a-tanda-putus{0%,47%{opacity:0;transform:scale(.4)}52%{opacity:1;transform:scale(1.25)}58%,95%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.4)}}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}.anim-nyala-padam{opacity:.28!important;filter:grayscale(1)}.anim-alir-padam{opacity:0!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-putih .cut-gambar{animation:a-melayang 3s ease-in-out infinite;opacity:.6}.cut-putih:after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;background:radial-gradient(circle at 50% 45%,#ffffff59 0,#ffffffd9 70%);animation:sunyi-pudar 4s ease-out forwards}.cut-adegan.cut-putih.dengan-gambar .cut-ilustrasi,.cut-adegan.cut-putih.dengan-gambar .cut-buram{filter:grayscale(.6) blur(1.5px) brightness(1.15);animation:sunyi-redup 6s ease-out forwards}.cut-adegan.cut-putih.dengan-gambar .cut-buram{filter:blur(18px) grayscale(.6) brightness(1.2)}@keyframes sunyi-pudar{0%{opacity:0}to{opacity:1}}@keyframes sunyi-redup{0%{opacity:1;transform:scale(1)}to{opacity:.55;transform:scale(1.08)}}.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%}.hud-kiri-atas{position:absolute;top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));display:flex;flex-direction:column;align-items:flex-start;gap:8px;pointer-events:auto;max-width:calc(100vw - 90px)}.hud-3d .hud-kiri-atas .hud-stats{position:static;top:auto;left:auto}.misi-tombol{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:5px 14px 5px 9px;border-radius:14px;background:#fffdf7f5;border-left:5px solid var(--oranye-500);box-shadow:var(--bayangan);color:var(--hijau-900);text-align:left;transition:transform .08s ease}.misi-tombol:active{transform:scale(.96)}.misi-tombol-ikon{font-size:1.35rem;line-height:1}.misi-tombol-label{display:flex;flex-direction:column;line-height:1.1;font-family:var(--font-display);font-weight:800;font-size:1rem}.misi-tombol-tahap{font-family:inherit;font-size:.72rem;font-weight:700;color:var(--oranye-600)}.misi-titik{position:absolute;top:-4px;right:-4px;width:14px;height:14px;border-radius:50%;background:var(--merah-600);border:2px solid #fff;display:none}.misi-tombol.baru .misi-titik{display:block;animation:kedip 1s infinite}.misi-overlay{align-items:center}.misi-panel{max-width:460px;border-top-color:var(--oranye-500);display:flex;flex-direction:column;gap:12px}.misi-daftar{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.misi-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:12px;background:#f1f5f9;color:var(--teks-lemah);font-size:.78rem;font-weight:700;text-align:center;opacity:.75}.misi-item-ikon{font-size:1.4rem}.misi-item.lewat{background:var(--hijau-100);color:var(--hijau-700);opacity:1}.misi-item.aktif{background:var(--oranye-500);color:#fff;opacity:1;box-shadow:0 0 0 3px var(--oranye-100)}.misi-tugas{background:var(--oranye-100);border:2px solid var(--krem-200);border-radius:14px;padding:10px 12px}.misi-tugas p{margin-top:4px;font-size:1.05rem;font-weight:700;color:var(--hijau-900)}.hud-actions{right:max(16px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));gap:10px}.hud-aksi-atas,.hud-aksi-utama{display:flex;align-items:flex-end;gap:12px}.btn-action.lompat{flex-direction:column;gap:0;width:74px;min-width:74px;height:74px;padding:0;border-radius:50%;background:var(--biru-600);touch-action:none;user-select:none;-webkit-user-select:none}.btn-action.lompat:active{transform:scale(.92)}.lompat-ikon{font-size:1.5rem;line-height:1}.lompat-label{font-size:.7rem;font-weight:800;letter-spacing:.02em}.joystick-host{left:max(18px,env(safe-area-inset-left));bottom:max(20px,env(safe-area-inset-bottom))}.sapa-bar{right:max(16px,env(safe-area-inset-right));bottom:calc(max(20px,env(safe-area-inset-bottom)) + 150px)}.dialog-panel{max-height:calc(100dvh - 24px);overflow-y:auto}.dialog-panel.tas-panel{display:flex;flex-direction:column;overflow:hidden}.tas-panel .tas-grid{flex:1 1 auto;min-height:0;overflow-y:auto;padding:2px}.tas-panel>.btn{flex:none}.peta-bar .btn.ghost{background:#fffffff2;color:var(--hijau-900);border-color:var(--garis);box-shadow:var(--bayangan)}.peta-zoom{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:45;display:flex;flex-direction:column;gap:10px}.peta-zoom-btn{width:54px;height:54px;border-radius:50%;background:#fffffff2;border:2px solid var(--hijau-500);box-shadow:var(--bayangan);font-size:1.4rem;display:grid;place-items:center}.peta-zoom-btn:active{transform:scale(.92)}@media(orientation:landscape)and (max-height:600px){.peta-zoom{gap:8px}.peta-zoom-btn{width:48px;height:48px;font-size:1.2rem}}.overlay.dialog-overlay,.overlay.hadiah-overlay{padding-top:max(58px,env(safe-area-inset-top))}.final-kepala{padding-right:56px}@media(orientation:landscape)and (max-height:600px){#app{max-width:1100px;padding:10px max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left))}.screen{gap:10px}.intro-screen[data-langkah=cover]{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:20px;align-items:center;min-height:calc(100dvh - 20px)}.intro-screen[data-langkah=cover] .sampul{margin:0;border-radius:var(--radius);height:calc(100dvh - 20px);box-shadow:var(--bayangan)}.intro-screen[data-langkah=cover] .sampul-gambar{height:100%}.intro-screen[data-langkah=cover] .sampul:not(.dengan-gambar){display:none}.cover-isi{display:flex;flex-direction:column;gap:10px;max-height:calc(100dvh - 20px);overflow-y:auto;padding:4px 2px}.cover-hero{padding:0}.cover-judul{font-size:2rem}.cover-hero .subjudul{font-size:.92rem;margin-top:2px}.cover-hero .muted{font-size:.8rem}.cover-tombol{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cover-tombol>:first-child{grid-column:1 / -1}.cover-tombol .btn{min-height:42px;padding:8px 12px;font-size:.95rem}.footer-note{padding:0;font-size:.72rem}.intro-screen[data-langkah=karakter],.intro-screen[data-langkah=warna]{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr);grid-auto-flow:row dense;column-gap:20px;row-gap:8px;align-content:center;min-height:calc(100dvh - 20px)}.intro-screen[data-langkah=karakter]>*,.intro-screen[data-langkah=warna]>*{grid-column:2}.intro-screen[data-langkah=karakter] .intro-ket,.intro-screen[data-langkah=warna] .intro-ket{text-align:left}.intro-screen[data-langkah=karakter] .topbar,.intro-screen[data-langkah=warna] .topbar{padding-right:56px}.intro-screen[data-langkah=karakter]{grid-template-rows:1fr auto auto auto 1fr}.intro-screen[data-langkah=karakter] .topbar{grid-row:2}.intro-screen[data-langkah=karakter] .intro-ket{grid-row:3}.intro-screen[data-langkah=karakter] .intro-aksi{grid-row:4}.intro-screen[data-langkah=karakter] .pilih-karakter-row{grid-column:1;grid-row:1 / -1;align-self:center;margin:0}.pilih-karakter{padding:10px 8px;gap:4px}.karakter-preview{width:auto;height:min(58dvh,260px)}.intro-screen[data-langkah=warna]{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-content:start}.intro-screen[data-langkah=warna] .warna-panggung{grid-column:1;grid-row:1 / span 6;align-self:start;position:sticky;top:10px;height:calc(100dvh - 20px);align-items:center}.karakter-preview.preview-besar{width:auto;height:calc(100dvh - 40px)}.warna-baris{padding:6px 10px 8px}.warna-label{margin-bottom:4px;font-size:.85rem}.warna-tombol{flex-direction:row;justify-content:flex-start;gap:6px;padding:5px 6px}.warna-bulatan{width:24px;height:24px;flex:none}.warna-nama{font-size:.72rem;text-align:left}.intro-screen[data-langkah=warna] .intro-aksi,.intro-screen[data-langkah=nama] .intro-aksi{grid-template-columns:1fr auto}.intro-screen[data-langkah=nama]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;row-gap:10px;align-content:center;min-height:calc(100dvh - 20px)}.intro-screen[data-langkah=nama]>*{grid-column:1 / -1}.intro-screen[data-langkah=nama] .topbar{padding-right:56px}.intro-screen[data-langkah=nama] .kartu-nama{grid-column:1;display:flex;align-items:center;gap:10px}.intro-screen[data-langkah=nama] .pilih-mode{grid-column:2;margin:0}.kartu-nama .isian{flex:1;min-width:0}.cut-overlay{flex-direction:row}.cut-teks{width:min(40%,380px);max-width:none;margin:0;border-radius:20px 0 0 20px;display:flex;flex-direction:column;justify-content:center;padding:16px max(16px,env(safe-area-inset-right)) 16px 16px;overflow-y:auto}.cut-teks p{font-size:1.05rem}.cut-aksi{flex-wrap:wrap}.vn-overlay{padding:8px max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.vn-kotak{max-width:min(780px,100%);max-height:calc(100dvh - 16px);padding:10px 14px 8px}.vn-potret{width:48px;height:48px;font-size:1.4rem}.vn-kepala{margin-bottom:2px}.vn-teks{font-size:1rem;min-height:2.4em;margin:2px 0 8px}.vn-aksi{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}.vn-pilihan{min-height:42px;padding:8px 12px}.vn-suara-onoff{margin-top:4px;min-height:26px}.cerita-overlay{padding:6px max(8px,env(safe-area-inset-right)) 6px max(8px,env(safe-area-inset-left))}.cerita-buku{max-width:1040px;padding:10px 14px;gap:8px}.cerita-buku.ada-panggung{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-flow:row dense;column-gap:14px;row-gap:8px;align-content:start}.cerita-buku.ada-panggung>*{grid-column:2}.cerita-buku.ada-panggung>.cerita-kepala{grid-column:1 / -1}.cerita-buku.ada-panggung>.cerita-panggung{grid-column:1;grid-row:2 / span 4;align-self:start;position:sticky;top:0}.cerita-buku.ada-panggung .cerita-svg{max-height:calc(100dvh - 100px)}.cerita-narasi p{font-size:1rem;margin-bottom:4px}.cerita-potret{width:44px;height:44px}.hadiah-overlay{padding:8px}.hadiah-kartu{max-width:780px;max-height:calc(100dvh - 16px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);column-gap:20px;align-items:center;padding:12px 18px}.hadiah-kanan{display:flex;flex-direction:column;gap:10px}.hadiah-kiri h2{font-size:1.3rem}.hadiah-kiri .muted{font-size:.85rem;line-height:1.35}.hadiah-emoji{font-size:2.6rem;line-height:1.1}.hadiah-potret{width:72px;height:72px;margin-bottom:2px}.hadiah-bintang{font-size:1.5rem;margin:2px 0}.overlay{padding:8px;align-items:center}.dialog-panel{max-height:calc(100dvh - 16px);padding:14px 16px}.tas-panel{max-width:860px;max-height:calc(100dvh - 16px)}.tas-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));margin:8px 0 10px}.tas-item{padding:8px}.tas-emoji{font-size:1.6rem}.overlay.dialog-overlay,.overlay.hadiah-overlay{padding-top:8px;padding-left:max(64px,env(safe-area-inset-left));padding-right:max(64px,env(safe-area-inset-right))}.misi-panel{max-width:560px}.joystick-base{width:116px;height:116px}.joystick-knob{width:50px;height:50px}.btn-action{min-width:56px;height:56px}.btn-action.menu{min-width:48px;height:48px}.btn-action.lompat{width:68px;min-width:68px;height:68px}.hud-actions{gap:8px}.misi-tombol{min-height:42px;padding:4px 12px 4px 8px}.sapa-bar{bottom:calc(max(20px,env(safe-area-inset-bottom)) + 130px);flex-direction:row}.toast{bottom:max(16px,env(safe-area-inset-bottom));max-width:calc(100vw - 340px);min-width:200px;border-radius:16px}.screen>.stack:has(>.langkah){grid-template-columns:repeat(2,minmax(0,1fr))}.screen>.stack:has(>.btn){grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.final-screen{padding:12px}.menara{margin:8px 0}.loading-box{padding:18px 22px}}@media(orientation:landscape)and (max-height:380px){.cover-hero{padding-right:44px}.cover-judul{font-size:1.7rem}.cover-hero .subjudul{font-size:.82rem}.cover-isi{gap:6px}.cover-isi>.muted{font-size:.82rem}.cover-tombol .btn{min-height:40px;padding:6px 8px;font-size:.85rem;white-space:nowrap}.footer-note{font-size:.66rem}.hadiah-potret{width:60px;height:60px}.joystick-base{width:104px;height:104px}.joystick-knob{width:44px;height:44px}.misi-tombol-tahap{display:none}}.menara-adegan{position:fixed;inset:0;z-index:45;overflow:hidden;background:#0b1226}.ma-langit{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 30% 0%,#334155,#33415500 60%),linear-gradient(#0f172a,#1e293b 60%,#0c4a6e)}.ma-langit:before{content:"";position:absolute;inset:-40px;background:repeating-linear-gradient(105deg,rgba(255,255,255,.13) 0 2px,transparent 2px 24px);animation:ma-hujan .45s linear infinite;will-change:transform}@keyframes ma-hujan{0%{transform:translateZ(0)}to{transform:translate3d(-23.18px,-6.21px,0)}}.ma-kilat{position:absolute;inset:0;background:#e0f2fe;opacity:0;pointer-events:none;animation:ma-kilat 7s infinite}@keyframes ma-kilat{0%,60%,63%,66%,to{opacity:0}61%{opacity:.55}64.5%{opacity:.35}}.ma-panggung{position:absolute;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);width:min(calc(100% - 20px),620px);bottom:calc(var(--ruang-bawah, 0px) + 6px);min-height:160px;border-radius:20px;overflow:hidden;box-shadow:0 0 0 4px #57534e,0 14px 40px #00000080;transition:bottom .3s ease}.ma-menara{position:absolute;left:0;right:0;top:0;height:calc(var(--n, 4) * 100%);display:flex;flex-direction:column;transition:transform 1.2s cubic-bezier(.55,0,.3,1);will-change:transform}.ma-menara.tanpa-transisi{transition:none}.ma-lantai{position:relative;flex:1;background:linear-gradient(#00000040,#0000 30%),repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 3px,transparent 3px 34px),repeating-linear-gradient(90deg,rgba(0,0,0,.12) 0 3px,transparent 3px 62px),linear-gradient(#8b7a66,#6f604f);border-bottom:6px solid #3f3428}.ma-lantai:after{content:"";position:absolute;inset:0;background:#00000038;pointer-events:none;transition:opacity .6s;z-index:4}.ma-lantai.aktif:after{opacity:0}.ma-lantai.puncak{background:linear-gradient(#0000004d,#0000 35%),repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 2px,transparent 2px 40px),linear-gradient(#475569,#334155)}.ma-papan{position:absolute;top:5%;left:4%;padding:4px 12px;border-radius:10px;background:#7c4a1d;border:3px solid #4a2c10;color:#fde68a;font-family:var(--font-display);font-weight:800;font-size:clamp(.85rem,2.6vh,1.1rem);box-shadow:0 3px #2b190a;z-index:2}.ma-jendela{position:absolute;top:16%;left:31%;width:18%;height:32%;border-radius:999px 999px 8px 8px;border:6px solid #4a3a2a;background:linear-gradient(#0f172a,#1e3a8a);overflow:hidden;box-shadow:inset 0 0 18px #0009}.ma-hujan{position:absolute;inset:-20px;background-image:repeating-linear-gradient(105deg,rgba(255,255,255,.35) 0 1px,transparent 1px 9px);animation:ma-hujan-kecil .35s linear infinite;will-change:transform}@keyframes ma-hujan-kecil{to{transform:translate3d(-8.69px,-2.33px,0)}}.ma-hiasan{position:absolute;top:50%;left:27%;width:26%;text-align:center;font-size:clamp(1rem,3.4vh,1.5rem);letter-spacing:4px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.5))}.ma-lantai-dasar{position:absolute;left:0;right:0;bottom:0;height:14%;background:repeating-linear-gradient(90deg,#7c5a3a 0 46px,#6b4c30 46px 48px),#7c5a3a;box-shadow:inset 0 4px #a07850}.ma-tangga{position:absolute;left:2%;bottom:0;width:17%;height:14%;z-index:1;background:repeating-linear-gradient(180deg,#3b2a1a 0 6px,#241910 6px 10px);border-radius:6px 6px 0 0;box-shadow:inset 0 6px 10px #000000b3}.ma-tangga:before{content:"";position:absolute;left:0;right:0;top:-26%;height:26%;border-top:4px solid #a07850;border-left:4px solid #a07850;border-right:4px solid #a07850;border-radius:6px 6px 0 0}.ma-pintu-wadah{position:absolute;left:64%;bottom:14%;width:24%;height:66%;display:flex;flex-direction:column;align-items:center;gap:3px;z-index:1}.ma-kunci{padding:2px 8px;border-radius:999px;background:#fef3c7;color:#78350f;font-weight:800;font-size:clamp(.7rem,2.2vh,.9rem);white-space:nowrap;box-shadow:0 2px #0000004d;transition:background .3s}.ma-kunci.cukup{background:#bbf7d0;color:#14532d}.ma-lampu-kunci{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;max-width:100%}.ma-lampu-kunci span{width:9px;height:9px;border-radius:50%;background:#44403c;border:1px solid #a8a29e}.ma-lampu-kunci span.nyala{background:#fde047;border-color:#fef9c3;box-shadow:0 0 8px 2px #fde047cc}.ma-pintu{position:relative;flex:1;width:100%;border:6px solid #57534e;border-bottom:none;border-radius:10px 10px 0 0;background:#1c1917;perspective:600px}.ma-ruang-balik{position:absolute;inset:0;display:grid;place-items:center;font-size:2rem;background:radial-gradient(circle at 50% 60%,#57534e,#1c1917 70%);transition:background .6s}.ma-pintu.tuntas .ma-ruang-balik{background:radial-gradient(circle at 50% 60%,#fde68a,#b45309 55%,#1c1917 90%)}.ma-daun{position:absolute;inset:0;transform-origin:left center;transition:transform .8s cubic-bezier(.3,.7,.3,1);background:repeating-linear-gradient(90deg,rgba(0,0,0,.18) 0 2px,transparent 2px 22%),linear-gradient(#92603a,#6b4423);border-radius:4px 4px 0 0;box-shadow:inset 0 0 0 3px #00000040}.ma-gembok{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);font-size:clamp(1.2rem,4vh,1.8rem);transition:opacity .3s}.ma-gagang{position:absolute;right:10%;top:55%;width:8px;height:8px;border-radius:50%;background:#fbbf24}.ma-palang{position:absolute;inset:0;pointer-events:none;transition:opacity .4s,transform .4s}.ma-palang:before,.ma-palang:after{content:"";position:absolute;left:-12%;right:-12%;top:46%;height:14%;background:repeating-linear-gradient(45deg,#facc15 0 10px,#1f2937 10px 20px);border-radius:4px;box-shadow:0 2px 4px #00000080}.ma-palang:before{transform:rotate(22deg)}.ma-palang:after{transform:rotate(-22deg)}.ma-pintu.salah{animation:ma-getar .45s}.ma-pintu.salah .ma-palang:before,.ma-pintu.salah .ma-palang:after{background:repeating-linear-gradient(45deg,#ef4444 0 10px,#1f2937 10px 20px)}.ma-pintu.benar{animation:ma-kilau .6s}.ma-pintu.terbuka .ma-daun{transform:rotateY(-78deg)}.ma-pintu.terbuka .ma-palang{opacity:0;transform:translateY(-30%) rotate(-8deg)}.ma-pintu.terbuka .ma-gembok{opacity:0}@keyframes ma-getar{0%,to{transform:translate(0)}20%{transform:translate(-6px) rotate(-1deg)}40%{transform:translate(6px) rotate(1deg)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes ma-kilau{0%{box-shadow:0 0 #4ade8000}40%{box-shadow:0 0 24px 8px #4ade80d9}to{box-shadow:0 0 #4ade8000}}.ma-tokoh{position:absolute;bottom:12%;left:10%;height:46%;aspect-ratio:240 / 340;z-index:3;transform:translate(-50%,calc(-1 * var(--naik, 0%)));transition-property:left,transform,opacity;transition-timing-function:linear,ease-out,ease;transition-duration:0ms;pointer-events:none}.ma-tokoh.tanpa-transisi{transition:none!important}.ma-tokoh.tersembunyi{opacity:0}.ma-tokoh.masuk{animation:ma-masuk 1s ease-in forwards}@keyframes ma-masuk{0%,35%{opacity:1}to{opacity:0}}.ma-tokoh .karakter-preview{width:100%;height:100%;max-width:none;background:none;border-radius:0}.ma-tokoh:after{content:"";position:absolute;left:22%;right:22%;bottom:2%;height:6%;border-radius:50%;background:#00000059;z-index:-1}.ma-tokoh.lompat .karakter-preview{animation:ma-lompat .5s ease-out}.ma-tokoh.mundur .karakter-preview{animation:ma-mundur .45s ease-out}@keyframes ma-lompat{0%,to{transform:translateY(0)}40%{transform:translateY(-16%)}}@keyframes ma-mundur{0%,to{transform:translate(0)}35%{transform:translate(-10%) rotate(-4deg)}}.menara-adegan.menyala .ma-lantai.puncak{background:radial-gradient(circle at 76% 40%,#fef08a,#f59e0b 35%,#334155 75%)}.menara-adegan.menyala .ma-lantai.puncak .ma-ruang-balik{background:radial-gradient(circle,#fffbeb,#fde047 50%,#f59e0b);font-size:2.6rem}.menara-adegan.menyala .ma-kilat{animation:none}body.mode-menara .vn-overlay{background:none}@media(orientation:landscape)and (max-height:600px){.ma-panggung{left:max(8px,env(safe-area-inset-left));transform:none;top:8px;bottom:8px;width:calc(43% - 12px)}body.mode-menara .vn-overlay{justify-content:flex-end;align-items:center}body.mode-menara .vn-kotak{max-width:calc(57% - 8px)}body.mode-menara .vn-aksi{grid-template-columns:1fr}body.mode-menara .vn-kepala{padding-right:52px}}@media(prefers-reduced-motion:reduce){.ma-langit,.ma-hujan,.ma-kilat{animation:none}}
