:root{--kertas:#F3E9D2;--kertas2:#FBF5E6;--tinta:#1E1A16;--tinta2:#5C4733;--bata:#C2410C;--sawah:#4D7A2E;--lampu:#FACC15;--malam:rgba(20,28,36,0.82)}*{box-sizing:border-box}body,html{margin:0;font-family:Inter,Arial,sans-serif;height:100%;background:#9ACD6E;color:var(--tinta);overflow:hidden;overscroll-behavior:none}button{font-family:inherit;cursor:pointer}.loading{position:fixed;inset:0;display:grid;place-items:center;background:var(--kertas);font-weight:800}.desa{position:fixed;inset:0;touch-action:none;user-select:none;-webkit-user-select:none}.scene{inset:0;width:100%;height:100%;display:block}.scene,.tag{position:absolute}.tag{left:0;top:0;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:4px;will-change:transform}.tag i{font-style:normal;background:#E8DCC0;border-radius:6px;padding:0 5px;font-size:10px}.pill,.tag i{font-weight:800}.pill{background:rgba(255,255,255,.95);border-radius:10px;padding:3px 9px;font-size:12px;box-shadow:0 4px 10px rgba(0,0,0,.25);white-space:nowrap}.pill.me{background:#F97316;color:#fff;font-weight:900;font-size:13px}.bubble{background:#fff;border-radius:14px;padding:6px 10px;font-size:12px;line-height:16px;font-weight:600;max-width:190px;box-shadow:0 4px 10px rgba(0,0,0,.25)}.bubble.small{font-weight:800}.tag-me{z-index:3}.tag-kades{z-index:2}.tag-rumah{pointer-events:auto;cursor:pointer;background:var(--bata);color:#fff;border-radius:12px;padding:4px 10px;box-shadow:0 4px 10px rgba(0,0,0,.25);gap:0;align-items:flex-start}.tag-rumah b{font-size:13px;font-weight:900}.tag-rumah span{font-size:11px;font-weight:700}.tag-npc{background:rgba(255,255,255,.92);border-radius:10px;padding:3px 8px;gap:0;box-shadow:0 3px 8px rgba(0,0,0,.2)}.tag-npc b{font-size:11px}.tag-npc span{font-size:10px;font-weight:600;color:var(--tinta2)}.hud-top{position:absolute;left:12px;right:12px;top:max(12px,env(safe-area-inset-top));justify-content:space-between;pointer-events:none}.hud-top,.hud-top .row{display:flex;align-items:center}.hud-top .row{gap:8px;pointer-events:auto}.avatar{width:44px;height:44px;border-radius:22px;background:#2A9D8F;border:3px solid var(--bata);color:#fff;display:grid;place-items:center;font-weight:900}.dark{background:var(--malam);color:#fff;border-radius:12px;padding:5px 10px}.dark .big{font-size:14px;font-weight:900}.dark .small{font-size:11px;font-weight:700;color:#DCE8F2}.kopi{display:flex;gap:6px;align-items:center;font-size:14px}.round{width:44px;height:44px;border-radius:22px;border:none;background:var(--kertas2);display:grid;place-items:center;box-shadow:0 4px 10px rgba(0,0,0,.25)}.proyek{position:absolute;left:12px;right:12px;top:calc(max(12px, env(safe-area-inset-top)) + 56px);background:rgba(251,245,230,.95);border-radius:16px;padding:10px 12px;box-shadow:0 6px 16px rgba(0,0,0,.2);max-width:520px}.pr-row{display:flex;justify-content:space-between;font-size:13px;font-weight:800}.ok{color:var(--sawah)}.bar{margin-top:6px;background:#E8DCC0}.bar,.bar div{height:10px;border-radius:5px}.bar div{background:var(--sawah)}.joystick{position:absolute;left:20px;bottom:calc(112px + env(safe-area-inset-bottom));width:120px;height:120px;border-radius:60px;background:rgba(251,245,230,.35);border:2px solid rgba(255,255,255,.85);touch-action:none;display:grid;place-items:center}.knob{width:52px;height:52px;border-radius:26px;pointer-events:none}.btn-lari,.knob{background:rgba(251,245,230,.95);box-shadow:0 4px 10px rgba(0,0,0,.25)}.btn-lari{position:absolute;right:20px;bottom:calc(132px + env(safe-area-inset-bottom));width:68px;height:68px;border-radius:34px;border:none;font-weight:900;font-size:13px;touch-action:none}.btn-lari:active{background:var(--lampu)}.btn-emote{position:absolute;right:98px;bottom:calc(120px + env(safe-area-inset-bottom));width:50px;height:50px;border-radius:25px;border:none;background:rgba(251,245,230,.95);display:grid;place-items:center;box-shadow:0 4px 10px rgba(0,0,0,.25)}.near{bottom:calc(250px + env(safe-area-inset-bottom));border:none;background:var(--bata);border-radius:999px;padding:10px 16px;font-size:14px;box-shadow:0 6px 16px rgba(0,0,0,.3)}.near,.toast{position:absolute;left:50%;transform:translateX(-50%);color:#fff;font-weight:700;white-space:nowrap}.toast{top:calc(max(12px, env(safe-area-inset-top)) + 130px);background:rgba(30,26,22,.9);border-radius:12px;padding:8px 14px;font-size:13px}.nav{position:absolute;left:10px;right:10px;bottom:calc(16px + env(safe-area-inset-bottom));height:64px;border-radius:22px;background:var(--kertas2);box-shadow:0 8px 20px rgba(0,0,0,.25);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));max-width:560px;margin:0 auto}.nav button{border:none;background:none;font-size:12px;font-weight:700;color:var(--tinta)}.nav button.active{color:var(--bata);font-weight:900}.pr-sub{margin-top:6px;font-size:11px;font-weight:700;color:var(--tinta2)}.near.spot{background:#1F4E3D}.sheet-bg{position:absolute;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:flex-end;justify-content:center;z-index:10}.sheet{width:100%;max-width:480px;background:var(--kertas);border-radius:24px 24px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;box-shadow:0 -10px 30px rgba(0,0,0,.25)}.sheet h2{margin:0;font-size:22px;font-weight:900}.sheet p{margin:0;font-size:14px;line-height:20px;color:var(--tinta2)}.sheet small{font-size:12px;color:var(--tinta2);text-align:center}.satpam-row{display:flex;gap:10px;align-items:center;background:var(--kertas2);border-radius:14px;padding:10px 12px;font-size:13px;line-height:18px}.satpam-badge{width:40px;height:40px;border-radius:20px;background:#2B3A67;color:#FACC15;display:grid;place-items:center;font-weight:900;flex:none}.ig{background:#E8DCC0;border-radius:6px;padding:0 5px;font-size:11px;font-weight:800}.btn-main{display:flex;align-items:center;justify-content:center;height:50px;background:var(--bata);color:#fff;font-size:16px;text-decoration:none}.btn-alt,.btn-main{border-radius:999px;font-weight:800}.btn-alt{height:46px;background:var(--kertas2);border:2px solid var(--tinta2);font-size:15px;color:var(--tinta)}.papan{max-height:82vh}.papan-head{display:flex;justify-content:space-between;align-items:center}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stats div{background:var(--kertas2);border-radius:12px;padding:8px;text-align:center}.stats b{display:block;font-size:22px;font-weight:900;color:#C0392B}.stats span{font-size:11px;font-weight:700}.cari,.stats span{color:var(--tinta2)}.cari{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:800}.cari input{height:44px;border-radius:999px;border:2px solid var(--tinta2);padding:0 16px;font-size:15px;font-family:inherit;color:var(--tinta)}.cari input,.list{background:var(--kertas2)}.list{overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:34px;align-content:start;column-gap:12px;border-radius:14px;padding:6px 12px;min-height:160px;max-height:46vh}.item{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;padding:0;border-bottom:1px solid #e8dcc0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dot{width:9px;height:9px;border-radius:5px;background:#C9AE78;flex:none}.dot.on{background:var(--sawah)}.keys-hint{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(88px + env(safe-area-inset-bottom));background:rgba(30,26,22,.7);color:#F3E9D2;border-radius:10px;padding:4px 10px;font-size:11px;font-weight:700;white-space:nowrap;pointer-events:none;display:none}@media (hover:hover) and (pointer:fine){.keys-hint{display:block}}.tag-papan{pointer-events:auto;cursor:pointer;border:none;background:#C0392B;color:#fff;border-radius:12px;padding:4px 10px;box-shadow:0 4px 10px rgba(0,0,0,.25);gap:0;font-family:inherit}.tag-papan b{font-size:13px;font-weight:900}.tag-papan span{font-size:11px;font-weight:700}.lokasi{position:absolute;left:50%;transform:translateX(-50%);top:calc(max(12px, env(safe-area-inset-top)) + 150px);background:#B45309;color:#fff;border-radius:999px;padding:6px 14px;font-size:13px;white-space:nowrap;box-shadow:0 4px 10px rgba(0,0,0,.25);pointer-events:none}.lokasi,.soal{font-weight:800}.soal{font-size:18px!important;line-height:25px!important;color:var(--tinta)!important}.nomor{text-align:left!important;font-weight:700}.opsi{min-height:48px;border-radius:14px;border:2px solid #e8dcc0;background:var(--kertas2);font-size:16px;font-weight:800;color:var(--tinta);text-align:left;padding:0 16px}.opsi.benar{background:#DCF2CF;border-color:var(--sawah)}.opsi.salah{background:#FDE2D8;border-color:var(--bata)}.skor{font-size:20px!important;color:var(--tinta)!important}.peta{position:relative;width:100%;aspect-ratio:732/625;border-radius:16px;overflow:hidden;box-shadow:0 6px 16px rgba(0,0,0,.2);cursor:crosshair;flex:none}.peta img{width:100%;height:100%;display:block}.peta .pin{color:#fff;border-radius:6px;padding:1px 5px;font-size:10px;font-weight:900;white-space:nowrap;box-shadow:0 2px 5px rgba(0,0,0,.3)}.me-dot,.peta .pin{position:absolute;transform:translate(-50%,-50%);pointer-events:none}.me-dot{width:16px;height:16px;border-radius:8px;background:#F97316;border:3px solid #fff;box-shadow:0 0 0 5px rgba(249,115,22,.35)}.lemari{display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:start}.lm-prev{display:flex;flex-direction:column;align-items:center;padding-top:6px}.lm-head{width:56px;height:56px;border-radius:28px;position:relative}.lm-hat{position:absolute;left:50%;transform:translateX(-50%)}.lm-hat.peci{top:-6px;width:44px;height:14px;background:#1C1B20;border-radius:4px}.lm-hat.caping{top:-14px;width:0;height:0;border-left:40px solid transparent;border-right:40px solid transparent;border-bottom:22px solid #d9b871;background:none!important}.lm-hat.topi{top:-4px;width:58px;height:22px;background:#264653}.lm-hat.helm,.lm-hat.topi{border-radius:30px 30px 4px 4px}.lm-hat.helm{top:-8px;width:60px;height:28px;background:#FACC15}.lm-hat.kerudung{top:-6px;width:68px;height:72px;border-radius:34px 34px 20px 20px;z-index:-1}.lm-body{width:64px;height:56px;border-radius:18px 18px 8px 8px;margin-top:4px}.lm-legs{width:52px;height:40px;margin-top:2px}.lm-opts{flex-direction:column;font-size:13px}.lm-opts,.swatches{display:flex;gap:6px}.swatches{flex-wrap:wrap}.sw{width:32px;height:32px;border-radius:16px;border:2px solid rgba(0,0,0,.15)}.sw.on{outline:3px solid var(--tinta);outline-offset:2px}.seg{display:flex;gap:6px}.seg.wrap{flex-wrap:wrap}.seg button{min-height:36px;padding:0 12px;border-radius:999px;border:2px solid #e8dcc0;background:var(--kertas2);font-weight:800;font-size:13px;color:var(--tinta)}.seg button.on{background:var(--tinta);color:#fff;border-color:var(--tinta)}.bata-area{position:relative;height:260px;border-radius:16px;background:linear-gradient(#BFE3F5,#E8F4E0 70%,#9ACD6E 0);overflow:hidden;cursor:pointer;touch-action:manipulation}.bata-guide{position:absolute;left:50%;top:0;bottom:0;width:2px;background:rgba(30,26,22,.25)}.bata{position:absolute;width:84px;height:24px;border-radius:4px;background:#C2553B;box-shadow:inset 0 -4px 0 rgba(0,0,0,.18)}.bata.gerak{background:#E07A5F;outline:2px dashed #fff}.bata.pas{background:#4D7A2E}.bata.ok{background:#C2553B}.bata.miring{background:#9AA0A6}.kartu{background:var(--bata);border-radius:22px;padding:14px;color:#fff;display:flex;flex-direction:column;gap:10px}.kt-top{font-weight:900;font-size:14px;letter-spacing:1px}.kt-row{display:flex;gap:14px;align-items:center;background:var(--kertas2);color:var(--tinta);border-radius:16px;padding:12px}.kt-ava{width:72px;height:72px;border-radius:36px;position:relative;flex:none}.kt-ava span{position:absolute;left:50%;top:8px;transform:translateX(-50%);width:36px;height:36px;border-radius:18px}.kt-name{font-size:18px;font-weight:900}.kt-sub{font-size:13px;font-weight:700;color:var(--tinta2)}.kt-foot{font-size:11px;font-weight:700;opacity:.9;text-align:center}.note-dark{background:var(--tinta);color:#fff!important;border-radius:12px;padding:8px 12px;font-size:12px!important;line-height:17px!important}.low-list{overflow-y:auto;gap:10px;max-height:52vh}.low,.low-list{display:flex;flex-direction:column}.low{background:var(--kertas2);border-radius:16px;padding:12px 14px;gap:6px;border:2px solid transparent}.low.on{border-color:var(--sawah)}.low-head{display:flex;justify-content:space-between;align-items:center}.low-head span{background:#E8DCC0;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:800}.low small{text-align:left!important}.low button{height:42px;font-size:14px}.low button:disabled{opacity:.65}.lemari-full{position:absolute;inset:0;z-index:12;background:var(--kertas);display:flex;flex-direction:column;overflow:hidden}.lf-head{padding:max(20px,env(safe-area-inset-top)) 20px 0;display:flex;justify-content:space-between;align-items:center;max-width:560px;width:100%;margin:0 auto;box-sizing:border-box}.lf-head p{margin:0;font-size:13px;font-weight:700;color:var(--tinta2)}.lf-head h1{margin:2px 0 0;font-size:26px;font-weight:900}.lf-acak{height:44px;padding:0 16px;border-radius:999px;border:2px solid var(--tinta);background:var(--kertas2);font-weight:800;font-size:15px;color:var(--tinta)}.lf-prev{position:relative;height:min(330px,38vh);display:flex;justify-content:center;align-items:flex-end;flex:none}.lf-circle{position:absolute;left:50%;top:12%;width:min(280px,32vh);height:min(280px,32vh);transform:translateX(-50%);border-radius:50%;background:var(--kertas2)}.ava3d{position:relative;width:min(264px,70vw);height:100%}.lf-tabs{display:flex;gap:8px;padding:12px 16px 0;overflow-x:auto;max-width:560px;width:100%;margin:0 auto;box-sizing:border-box;flex:none}.lf-tabs button{flex:none;height:36px;padding:0 14px;border-radius:999px;border:none;background:var(--kertas2);font-weight:700;font-size:14px;color:var(--tinta)}.lf-tabs button.on{background:var(--tinta);color:#fff;font-weight:800}.lf-panel{flex:1;margin:12px auto 0;width:100%;max-width:560px;box-sizing:border-box;background:var(--kertas2);border-radius:28px 28px 0 0;padding:18px 16px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px;overflow-y:auto}.lf-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.lf-tile{height:72px;border-radius:16px;background:var(--kertas);border:3px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:12px;font-weight:700;color:var(--tinta)}.lf-tile.on{border-color:var(--bata);font-weight:800}.lf-tile.locked{background:#EDE3CB;color:var(--tinta2)}.lf-note{margin:0;font-size:13px;line-height:18px;color:var(--tinta2)}.lf-warna{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.lf-warna>span{font-size:14px;font-weight:800}.lf-sw{width:32px;height:32px;border-radius:16px;border:1px solid rgba(0,0,0,.12)}.lf-sw.on{box-shadow:0 0 0 3px var(--kertas2),0 0 0 5px var(--bata)}.lf-actions{margin-top:auto;display:grid;grid-template-columns:1fr 2fr;gap:10px}.lf-actions .btn-alt,.lf-actions .btn-main{height:52px;font-size:17px;border:none}.lf-actions .btn-alt{border:2px solid var(--tinta2)}.sb-full{position:absolute;inset:0;z-index:12;pointer-events:none}.sb-full button,.sb-track{pointer-events:auto}.sb-top{position:absolute;left:12px;right:12px;top:max(12px,env(safe-area-inset-top));display:flex;justify-content:space-between;align-items:center}.sb-time,.sb-title{background:rgba(20,28,36,.85);color:#fff;border-radius:12px;padding:5px 12px;text-align:center;display:flex;flex-direction:column}.sb-title b{font-size:15px;font-weight:900}.sb-title span{font-size:11px}.sb-time span,.sb-title span{font-weight:700;color:#DCE8F2}.sb-time span{font-size:10px}.sb-time b{font-size:18px;font-weight:900;line-height:20px}.sb-stages{position:absolute;left:12px;right:12px;top:calc(max(12px, env(safe-area-inset-top)) + 56px);background:rgba(251,245,230,.95);border-radius:14px;padding:8px 10px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;text-align:center;font-size:11px;font-weight:800;max-width:540px;margin:0 auto}.sb-bar{height:7px;border-radius:4px}.sb-stages span{display:block;margin-top:3px}.sb-stages .now{color:var(--bata)}.sb-stages .off{color:var(--tinta2)}.sb-mandor{position:absolute;left:12px;top:calc(max(12px, env(safe-area-inset-top)) + 116px);max-width:230px;background:#fff;border-radius:14px 14px 14px 4px;padding:7px 10px;box-shadow:0 4px 10px rgba(0,0,0,.25);display:flex;flex-direction:column}.sb-mandor b{font-size:11px;font-weight:900}.sb-mandor span{font-size:13px;line-height:17px;font-weight:600}.sb-track{position:absolute;left:0;right:0;top:40%;height:140px;cursor:pointer;touch-action:manipulation;max-width:560px;margin:0 auto}.sb-brick{position:absolute;top:14px;display:flex;align-items:center;gap:6px;transform:translateX(-20px)}.sb-b{display:block;width:64px;height:24px;background:#C2553B;border:2px solid #7a2f18;border-radius:3px;box-shadow:0 6px 12px rgba(0,0,0,.35)}.sb-b.pas{background:#4D7A2E;border-color:#2E4D1A}.sb-line{top:46px;height:60px;border-left:2px dashed #fff}.sb-line,.sb-slot{position:absolute;left:50%}.sb-slot{top:104px;height:26px;transform:translateX(-50%);border:3px dashed #facc15;border-radius:6px;background:rgba(250,204,21,.18);box-sizing:border-box}.sb-flash{position:absolute;right:16px;top:38%;font-size:40px;font-weight:900;color:#fff;-webkit-text-stroke:7px #1E1A16;paint-order:stroke fill;transform:rotate(6deg);animation:sbpop .9s ease-out forwards}.sb-flash.soft{font-size:30px}@keyframes sbpop{0%{opacity:0;transform:rotate(6deg) scale(.6)}20%{opacity:1;transform:rotate(6deg) scale(1.1)}to{opacity:0;transform:rotate(6deg) scale(1) translateY(-20px)}}.sb-bottom{position:absolute;left:0;right:0;bottom:0;height:210px;background:linear-gradient(180deg,rgba(30,26,22,0),rgba(30,26,22,.75) 35%);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:10px;padding:0 16px calc(24px + env(safe-area-inset-bottom));box-sizing:border-box}.sb-chips{display:flex;gap:8px}.sb-chips span{background:var(--kertas2);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:800}.sb-chips .ok{background:var(--sawah);color:#fff}.sb-btn{width:100%;max-width:520px;height:60px;border-radius:999px;border:4px solid #fff;background:var(--bata);color:#fff;font-weight:900;font-size:20px;box-shadow:0 6px 16px rgba(0,0,0,.35)}.desa.fokus .btn-emote,.desa.fokus .btn-lari,.desa.fokus .hud-top,.desa.fokus .joystick,.desa.fokus .keys-hint,.desa.fokus .lokasi,.desa.fokus .nav,.desa.fokus .near,.desa.fokus .proyek,.desa.fokus .tag{display:none!important}.saldo{display:flex;justify-content:space-between;align-items:center;background:var(--kertas2);border-radius:14px;padding:10px 14px;font-weight:800}.saldo b{color:var(--bata);font-size:18px}.tab-row{display:flex;gap:8px}.tab-row button{flex:1;height:40px;border-radius:999px;border:2px solid var(--tinta2);background:var(--kertas2);font-weight:800;font-size:14px;color:var(--tinta)}.tab-row button.on{background:var(--bata);border-color:var(--bata);color:#fff}.low button+button{margin-top:2px}.timba-bar{position:relative;height:38px;border-radius:999px;background:#E8DCC0;border:2px solid var(--tinta2);overflow:hidden}.timba-zone{position:absolute;top:0;bottom:0;background:rgba(77,122,46,.85)}.timba-zone.ok{background:rgba(250,204,21,.5)}.timba-mark{position:absolute;top:-2px;bottom:-2px;width:8px;margin-left:-4px;background:var(--tinta);border-radius:4px}.timba-hasil{display:flex;gap:10px;align-items:center;justify-content:center}.timba-hasil .bulat{width:34px;height:34px;border-radius:50%;background:var(--kertas2);border:2px solid var(--tinta2);display:grid;place-items:center;font-weight:900}.timba-hasil .bulat.pas{background:var(--sawah);color:#fff;border-color:var(--sawah)}.timba-hasil .bulat.ok{background:#FACC15;border-color:#EAB308}.timba-hasil .bulat.gagal{background:#E8B4A8;border-color:#C0392B}