/* Playkids – tampilan aplikasi belajar anak */
.pk-root{--ink:#1f2350;--muted:#6b6f9a;--bg:#f4f1ff;--card:#fff;--line:#e8e4fb;
  --purple:#6c4cf1;--purple-d:#4a2fd1;--pink:#ff6fa5;--yellow:#ffc93c;--orange:#ff8a3d;--teal:#12b5a0;--blue:#3aa0ff;--green:#22b86b;--red:#ef5350;
  --accent:var(--purple);--accent2:var(--pink);
  font-family:"Nunito",ui-rounded,"Segoe UI",system-ui,-apple-system,sans-serif;color:var(--ink);line-height:1.45;
  -webkit-font-smoothing:antialiased;position:relative;min-height:100vh;
  background:
    radial-gradient(900px 500px at 8% -5%,#e3dbff 0,transparent 60%),
    radial-gradient(800px 500px at 100% 0,#ffe1ee 0,transparent 55%),
    radial-gradient(700px 500px at 50% 110%,#d9f4ee 0,transparent 60%),var(--bg)}
.pk-root *,.pk-root *::before,.pk-root *::after{box-sizing:border-box}
:where(.pk-root) button{font-family:inherit;cursor:pointer;border:0;color:inherit;-webkit-tap-highlight-color:transparent}
:where(.pk-root) :is(h1,h2,h3,h4,p){margin:0}
.pk-standalone{margin:0;background:#f4f1ff}
.pk-root[data-track=angka]{--accent:var(--teal);--accent2:var(--blue)}
:where(.pk-root) :is(h1,h2,h3,h4),.pk-display{font-family:"Baloo 2","Nunito",ui-rounded,system-ui,sans-serif;letter-spacing:.2px}

.pk-boot{display:grid;place-items:center;min-height:60vh;gap:14px;text-align:center}
.pk-boot-logo{font-family:"Baloo 2",system-ui,sans-serif;font-weight:800;font-size:34px;color:var(--purple)}
.pk-spinner{width:38px;height:38px;border-radius:50%;border:5px solid #ddd6ff;border-top-color:var(--purple);animation:pk-spin .8s linear infinite}
@keyframes pk-spin{to{transform:rotate(360deg)}}

.pk-view{max-width:1120px;margin:0 auto;padding:16px 20px 40px;animation:pk-fade .35s ease both}
@keyframes pk-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- tombol ---------- */
.pk-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;font-size:16px;padding:12px 22px;border-radius:16px;
  background:#fff;color:var(--purple-d);box-shadow:0 4px 0 #d9d2fb,0 8px 18px #4a2fd11f;transition:transform .12s,box-shadow .12s;text-decoration:none;white-space:nowrap}
.pk-btn:hover{transform:translateY(-1px)}
.pk-btn:active{transform:translateY(3px);box-shadow:0 1px 0 #d9d2fb}
.pk-btn-primary{background:linear-gradient(180deg,#7d5cff,var(--purple));color:#fff;box-shadow:0 4px 0 var(--purple-d),0 10px 20px #6c4cf14d}
.pk-btn-primary:active{box-shadow:0 1px 0 var(--purple-d)}
.pk-btn-gold{background:linear-gradient(180deg,#ffd75e,var(--yellow));color:#4a3300;box-shadow:0 4px 0 #d99a00,0 10px 20px #ffc93c55}
.pk-btn-gold:active{box-shadow:0 1px 0 #d99a00}
.pk-btn-wa{background:linear-gradient(180deg,#34d97a,#1fb85c);color:#fff;box-shadow:0 4px 0 #13873f,0 10px 20px #1fb85c44}
.pk-btn-wa:active{box-shadow:0 1px 0 #13873f}
.pk-btn-ghost{background:#ffffff26;color:#fff;box-shadow:none;border:2px solid #ffffff55}
.pk-btn-sm{font-size:14px;padding:9px 16px;border-radius:13px}
.pk-btn-lg{font-size:18px;padding:15px 28px;border-radius:18px}
.pk-btn[disabled]{opacity:.5;pointer-events:none}
.pk-icon-btn{width:44px;height:44px;border-radius:14px;background:#fff;display:grid;place-items:center;font-size:20px;box-shadow:0 3px 0 #d9d2fb,0 6px 14px #4a2fd114}
.pk-icon-btn:active{transform:translateY(2px);box-shadow:0 1px 0 #d9d2fb}

/* ---------- topbar ---------- */
.pk-top{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:6px 0 18px;flex-wrap:wrap}
.pk-logo{display:flex;align-items:center;gap:10px;background:none;padding:0}
.pk-logo svg{width:44px;height:44px;filter:drop-shadow(0 6px 10px #6c4cf14d)}
.pk-wordmark{font-family:"Baloo 2",system-ui,sans-serif;font-weight:800;font-size:28px;line-height:1;color:var(--ink)}
.pk-wordmark b{background:linear-gradient(90deg,var(--purple),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
.pk-top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pk-me{display:flex;align-items:center;gap:8px;background:#fff;border-radius:999px;padding:5px 14px 5px 6px;font-weight:800;font-size:14px;box-shadow:0 3px 0 #d9d2fb}
.pk-me i{font-style:normal;width:32px;height:32px;border-radius:50%;background:#efeaff;display:grid;place-items:center;font-size:18px}
.pk-badge-prem{display:flex;align-items:center;gap:8px;background:linear-gradient(180deg,#fff3c4,#ffe08a);color:#6b4a00;border-radius:999px;padding:8px 16px;font-weight:800;font-size:14px;box-shadow:0 3px 0 #e6b73d}

/* ---------- hero ---------- */
.pk-hero{position:relative;overflow:hidden;border-radius:32px;padding:44px 44px 40px;color:#fff;min-height:320px;
  background:linear-gradient(125deg,#4a2fd1 0%,#6c4cf1 45%,#b455e8 80%,#ff6fa5 120%);box-shadow:0 22px 50px #4a2fd133}
.pk-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 20%,#ffffff2e 0,transparent 40%),radial-gradient(circle at 10% 110%,#ffffff1f 0,transparent 45%);pointer-events:none}
.pk-hero-copy{position:relative;z-index:2;max-width:640px}
.pk-eyebrow{display:inline-flex;gap:8px;align-items:center;font-size:12px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;background:#ffffff26;border:1px solid #ffffff40;padding:6px 14px;border-radius:999px}
.pk-hero h1{font-size:clamp(32px,5.4vw,54px);line-height:1.05;font-weight:800;margin:16px 0 12px}
.pk-hero h1 em{font-style:normal;color:var(--yellow)}
.pk-hero p{font-size:17px;color:#efe9ff;max-width:480px}
.pk-hero-cta{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}
.pk-float{position:absolute;z-index:1;display:grid;place-items:center;font-family:"Baloo 2",system-ui,sans-serif;font-weight:800;color:#fff;border-radius:22px;
  box-shadow:0 10px 0 #0000002b,0 20px 30px #00000026;animation:pk-bob 5s ease-in-out infinite}
.pk-float.f1{right:7%;top:12%;width:104px;height:104px;font-size:64px;background:linear-gradient(160deg,#ffd75e,#ff9f1c);transform:rotate(-9deg)}
.pk-float.f2{right:22%;top:46%;width:88px;height:88px;font-size:54px;background:linear-gradient(160deg,#5ee0cf,#12b5a0);transform:rotate(8deg);animation-delay:-1.5s}
.pk-float.f3{right:5%;bottom:9%;width:96px;height:96px;font-size:58px;background:linear-gradient(160deg,#ff9ac0,#ff4f8f);transform:rotate(12deg);animation-delay:-3s}
.pk-float.f4{right:33%;top:9%;width:66px;height:66px;font-size:38px;border-radius:18px;background:linear-gradient(160deg,#7ec3ff,#3a86ff);transform:rotate(-14deg);animation-delay:-2s}
@keyframes pk-bob{0%,100%{translate:0 0}50%{translate:0 -12px}}

/* ---------- kartu jalur ---------- */
.pk-section-title{font-size:26px;font-weight:800;margin:34px 0 14px;display:flex;align-items:center;gap:10px}
.pk-section-title small{font-family:"Nunito",sans-serif;font-size:14px;font-weight:700;color:var(--muted)}
.pk-tracks{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pk-track{position:relative;background:var(--card);border-radius:28px;padding:0;text-align:left;overflow:hidden;box-shadow:0 8px 0 #e3ddfb,0 22px 40px #4a2fd11a;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column}
.pk-track:hover{transform:translateY(-4px)}
.pk-track:active{transform:translateY(4px);box-shadow:0 3px 0 #e3ddfb}
.pk-track-art{height:170px;display:grid;place-items:center;position:relative;overflow:hidden;color:#fff;font-family:"Baloo 2",system-ui,sans-serif;font-weight:800;font-size:84px;letter-spacing:2px}
.pk-track.t-huruf .pk-track-art{background:linear-gradient(135deg,#6c4cf1,#b455e8 60%,#ff6fa5)}
.pk-track.t-angka .pk-track-art{background:linear-gradient(135deg,#0e9f8e,#12b5a0 40%,#3aa0ff)}
.pk-track-art::before,.pk-track-art::after{content:"";position:absolute;border-radius:50%;background:#ffffff1c}
.pk-track-art::before{width:200px;height:200px;right:-50px;top:-80px}
.pk-track-art::after{width:120px;height:120px;left:-30px;bottom:-60px}
.pk-track-art span{position:relative;text-shadow:0 6px 0 #0000002e}
.pk-track-body{padding:20px 24px 24px;display:flex;flex-direction:column;gap:8px;flex:1}
.pk-track h3{font-size:26px;font-weight:800}
.pk-track p{color:var(--muted);font-size:15px;font-weight:600}
.pk-track-meta{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:10px;flex-wrap:wrap}
.pk-chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:800;padding:6px 12px;border-radius:999px;background:#f1edff;color:var(--purple-d)}
.pk-track.t-angka .pk-chip{background:#e1f7f3;color:#0b8071}
.pk-go{font-weight:800;color:#fff;padding:10px 20px;border-radius:14px;font-size:15px}
.pk-track.t-huruf .pk-go{background:linear-gradient(180deg,#7d5cff,var(--purple));box-shadow:0 3px 0 var(--purple-d)}
.pk-track.t-angka .pk-go{background:linear-gradient(180deg,#25cdb7,var(--teal));box-shadow:0 3px 0 #0b8071}

/* ---------- fitur ---------- */
.pk-features{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:22px}
.pk-feature{background:#ffffffcc;backdrop-filter:blur(6px);border-radius:22px;padding:18px 18px 16px;box-shadow:0 4px 0 #e8e4fb}
.pk-feature i{font-style:normal;display:grid;place-items:center;width:46px;height:46px;border-radius:15px;font-size:24px;margin-bottom:10px}
.pk-feature:nth-child(1) i{background:#efeaff}.pk-feature:nth-child(2) i{background:#ffe9f1}.pk-feature:nth-child(3) i{background:#e1f7f3}.pk-feature:nth-child(4) i{background:#fff2cc}
.pk-feature h4{font-size:16px;font-weight:800;font-family:"Baloo 2",sans-serif}
.pk-feature p{font-size:13.5px;color:var(--muted);font-weight:600}

/* ---------- promo ---------- */
.pk-promo{margin-top:26px;border-radius:30px;padding:30px 34px;background:linear-gradient(120deg,#fff6d6,#ffe49a);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;box-shadow:0 8px 0 #f0c64d,0 22px 36px #e6b73d2e;position:relative;overflow:hidden}
.pk-promo h3{font-size:28px;font-weight:800;color:#4a3300}
.pk-promo p{color:#7a5a10;font-weight:700;margin-top:4px;max-width:520px}
.pk-promo-price{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.pk-promo-price b{background:#fff;color:#4a3300;border-radius:12px;padding:6px 12px;font-size:13.5px;font-weight:800}
.pk-foot{margin-top:34px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-weight:700;font-size:13.5px;align-items:center}
.pk-foot a{color:var(--purple-d);font-weight:800;text-decoration:none}

/* ---------- layar tangga ---------- */
.pk-back{display:inline-flex;align-items:center;gap:8px;font-weight:800;background:#fff;border-radius:14px;padding:10px 16px;box-shadow:0 3px 0 #d9d2fb}
.pk-lhead{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:6px}
.pk-ltitle{display:flex;align-items:center;gap:16px;margin:14px 0 6px}
.pk-ltitle i{font-style:normal;width:68px;height:68px;border-radius:22px;display:grid;place-items:center;color:#fff;font-family:"Baloo 2",sans-serif;font-weight:800;font-size:25px;letter-spacing:-1px;flex:none;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 6px 0 #0000001f}
.pk-ltitle h2{font-size:clamp(26px,4vw,38px);font-weight:800;line-height:1.1}
.pk-ltitle p{color:var(--muted);font-weight:700}
.pk-stairs-wrap{margin-top:16px;background:#ffffffb3;border-radius:32px;padding:26px 20px 0;box-shadow:0 8px 0 #e8e4fb;overflow:hidden}
.pk-stairs{display:grid;grid-template-columns:repeat(10,1fr);gap:8px;align-items:end}
.pk-step{--h:calc(150px + var(--i)*24px);--c1:#9b7bff;--c2:#6c4cf1;
  position:relative;height:var(--h);border-radius:18px 18px 0 0;background:linear-gradient(180deg,var(--c1),var(--c2));color:#fff;padding:12px 4px 12px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;
  box-shadow:inset 0 5px 0 #ffffff40,inset 0 -6px 0 #0000001a;transition:transform .15s,filter .15s;text-align:center}
.pk-step:nth-child(2){--c1:#7e8bff;--c2:#4f5de8}.pk-step:nth-child(3){--c1:#4db4ff;--c2:#2a8be0}.pk-step:nth-child(4){--c1:#2fd1c0;--c2:#12a595}
.pk-step:nth-child(5){--c1:#4fd98b;--c2:#22a860}.pk-step:nth-child(6){--c1:#b6d94a;--c2:#8aae1d}.pk-step:nth-child(7){--c1:#ffcf4a;--c2:#f0a500}
.pk-step:nth-child(8){--c1:#ff9f4a;--c2:#f07a12}.pk-step:nth-child(9){--c1:#ff7aa8;--c2:#e84a86}.pk-step:nth-child(10){--c1:#c06bff;--c2:#9333ea}
.pk-step:hover{transform:translateY(-6px);filter:brightness(1.06)}
.pk-step-icon{font-size:26px;filter:drop-shadow(0 3px 0 #00000022)}
.pk-step-n{font-family:"Baloo 2",sans-serif;font-weight:800;font-size:34px;line-height:1;text-shadow:0 3px 0 #00000026}
.pk-step-title{font-size:11.5px;font-weight:800;line-height:1.15;opacity:.95;padding:0 2px}
.pk-stars{display:flex;gap:1px;margin-top:auto;font-size:15px;letter-spacing:0}
.pk-stars .on{color:#ffe14d;text-shadow:0 2px 0 #b78900}
.pk-stars .off{color:#ffffff55}
.pk-step.is-locked{filter:grayscale(.55) brightness(.98)}
.pk-step.is-locked:hover{filter:grayscale(.3)}
.pk-lock{position:absolute;top:-12px;right:-4px;background:linear-gradient(180deg,#ffd75e,#ffb400);color:#4a3300;border-radius:999px;font-size:12px;font-weight:800;padding:4px 9px;box-shadow:0 3px 0 #c98600;display:flex;gap:3px;align-items:center}
.pk-lock-free{background:linear-gradient(180deg,#5de6a0,#22b86b);color:#fff;box-shadow:0 3px 0 #168a4f}
.pk-lhint{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;color:var(--muted);font-weight:700;font-size:14px}
.pk-lhint .pk-chip{background:#fff}

/* ---------- game ---------- */
.pk-gbar{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.pk-segs{flex:1;display:grid;grid-template-columns:repeat(10,1fr);gap:5px}
.pk-seg{height:12px;border-radius:99px;background:#ddd6fb;transition:background .25s}
.pk-seg.cur{background:var(--accent);animation:pk-pulse 1.2s ease-in-out infinite}
.pk-seg.ok{background:var(--green)}.pk-seg.bad{background:var(--orange)}
@keyframes pk-pulse{50%{opacity:.5}}
.pk-score{display:flex;align-items:center;gap:6px;font-weight:800;background:#fff;border-radius:14px;padding:9px 14px;box-shadow:0 3px 0 #d9d2fb;white-space:nowrap}
.pk-gwrap{max-width:820px;margin:0 auto}
.pk-qcard{background:var(--card);border-radius:32px;padding:26px 26px 30px;box-shadow:0 8px 0 #e3ddfb,0 24px 44px #4a2fd11f;animation:pk-pop .35s cubic-bezier(.2,1.3,.4,1) both;position:relative}
@keyframes pk-pop{from{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:none}}
.pk-qtag{display:inline-flex;font-size:12px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:#fff;background:linear-gradient(90deg,var(--accent),var(--accent2));padding:6px 14px;border-radius:999px}
.pk-prompt{display:flex;align-items:center;gap:12px;margin:16px 0 6px}
.pk-prompt h2{font-size:clamp(22px,3.6vw,30px);font-weight:800;line-height:1.15;flex:1}
.pk-say{flex:none;width:52px;height:52px;border-radius:50%;background:linear-gradient(180deg,#ffd75e,var(--yellow));font-size:24px;display:grid;place-items:center;box-shadow:0 4px 0 #d99a00}
.pk-say:active{transform:translateY(3px);box-shadow:0 1px 0 #d99a00}
.pk-visual{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;min-height:150px;margin:6px 0 12px;border-radius:24px;background:linear-gradient(180deg,#faf8ff,#f1edff);padding:16px}
.pk-visual.empty{display:none}
.pk-emoji{font-size:clamp(84px,18vw,128px);line-height:1;filter:drop-shadow(0 10px 0 #0000001a);animation:pk-bob 4s ease-in-out infinite}
.pk-bigletter{font-family:"Baloo 2",sans-serif;font-weight:800;font-size:clamp(84px,17vw,124px);line-height:1;color:var(--accent)}
.pk-bignum{font-family:"Baloo 2",sans-serif;font-weight:800;font-size:clamp(70px,15vw,108px);line-height:1;color:var(--accent);display:flex;gap:4px}
.pk-bignum .t{color:var(--pink)}.pk-bignum .o{color:var(--blue)}
.pk-eq{font-family:"Baloo 2",sans-serif;font-weight:800;font-size:clamp(46px,10vw,76px);line-height:1;color:var(--ink);display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:center}
.pk-eq .q{color:var(--pink)}
.pk-seq{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center}
.pk-seq span{min-width:62px;height:70px;padding:0 10px;border-radius:18px;background:#fff;display:grid;place-items:center;font-family:"Baloo 2",sans-serif;font-weight:800;font-size:38px;box-shadow:0 5px 0 #d9d2fb}
.pk-seq span.blank{background:#fff4d1;color:#c98600;box-shadow:0 5px 0 #f0c64d;border:3px dashed #f0c64d}
.pk-seq span.filled{background:#d9f7e6;color:#0f8a4b;box-shadow:0 5px 0 #8fdbb2;border:0}
.pk-group{display:flex;flex-wrap:wrap;gap:4px 6px;justify-content:center;align-items:center;max-width:100%}
.pk-group span{font-size:44px;line-height:1.05;animation:pk-pop .35s both}
.pk-group.md span{font-size:36px}.pk-group.sm span{font-size:26px}.pk-group.xs span{font-size:20px}
.pk-plus{font-family:"Baloo 2",sans-serif;font-weight:800;font-size:44px;color:var(--pink);padding:0 6px}
.pk-pair{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.pk-wordbox{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}
.pk-wordbox span{width:52px;height:62px;border-radius:15px;background:#fff;display:grid;place-items:center;font-family:"Baloo 2",sans-serif;font-weight:800;font-size:34px;box-shadow:0 4px 0 #d9d2fb}
.pk-wordbox span.blank{background:#fff4d1;color:#c98600;border:3px dashed #f0c64d;box-shadow:0 4px 0 #f0c64d}
.pk-wordbox span.filled{background:#d9f7e6;color:#0f8a4b;border:0;box-shadow:0 4px 0 #8fdbb2}
.pk-hintline{font-size:14px;font-weight:800;color:var(--muted);display:flex;gap:8px;align-items:center}

.pk-opts{display:grid;gap:14px;margin-top:8px}
.pk-opts.c2{grid-template-columns:repeat(2,1fr)}.pk-opts.c3{grid-template-columns:repeat(3,1fr)}.pk-opts.c4{grid-template-columns:repeat(4,1fr)}
.pk-opt{--oc:var(--purple);min-height:104px;border-radius:24px;background:#fff;border:3px solid var(--line);font-family:"Baloo 2",sans-serif;font-weight:800;font-size:clamp(40px,8vw,64px);line-height:1;color:var(--oc);
  box-shadow:0 7px 0 var(--line);display:flex;align-items:center;justify-content:center;padding:10px;transition:transform .12s,box-shadow .12s,background .15s,border-color .15s}
.pk-opt:nth-child(4n+1){--oc:#6c4cf1}.pk-opt:nth-child(4n+2){--oc:#ff5c93}.pk-opt:nth-child(4n+3){--oc:#12b5a0}.pk-opt:nth-child(4n+4){--oc:#ff8a3d}
.pk-opt:hover{border-color:var(--oc);transform:translateY(-3px)}
.pk-opt:active{transform:translateY(5px);box-shadow:0 2px 0 var(--line)}
.pk-opt.ok{background:#d9f7e6;border-color:var(--green);color:#0f8a4b;box-shadow:0 7px 0 #8fdbb2;animation:pk-yay .5s}
.pk-opt.bad{background:#ffe7e3;border-color:var(--red);color:#c53b37;box-shadow:0 7px 0 #f5b3ae;animation:pk-shake .45s}
.pk-opts.done .pk-opt:not(.ok):not(.bad){opacity:.45}
.pk-opts.done .pk-opt{pointer-events:none}
.pk-opt.groupopt{font-size:inherit;min-height:130px}
@keyframes pk-yay{40%{transform:scale(1.08) rotate(-2deg)}70%{transform:scale(.98)}}
@keyframes pk-shake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}

/* rangkai */
.pk-slots{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:12px 0 4px}
.pk-slot{--w:min(66px,calc((100vw - 90px)/var(--n) - 8px));width:var(--w);height:calc(var(--w)*1.2);min-width:34px;min-height:42px;border-radius:16px;background:#f6f3ff;border:3px dashed #c9bffa;font-family:"Baloo 2",sans-serif;font-weight:800;font-size:calc(var(--w)*.62);line-height:1;color:var(--purple-d);display:grid;place-items:center;transition:background .15s}
.pk-slot.is-filled{background:#fff;border:3px solid var(--purple);box-shadow:0 5px 0 #d9d2fb;animation:pk-pop .25s both}
.pk-slot.ok{background:#d9f7e6;border-color:var(--green);color:#0f8a4b;box-shadow:0 5px 0 #8fdbb2;animation:pk-yay .5s}
.pk-slot.bad{background:#ffe7e3;border-color:var(--red);color:#c53b37;animation:pk-shake .45s}
.pk-slots.num .pk-slot{--w:min(84px,calc((100vw - 90px)/var(--n) - 8px))}
.pk-tiles{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px;padding-top:18px;border-top:3px dotted var(--line)}
.pk-tile{--w:min(68px,calc((100vw - 90px)/var(--n) - 10px));--tc:var(--purple);width:max(var(--w),44px);height:max(calc(var(--w)*1.15),52px);border-radius:16px;background:linear-gradient(180deg,#fff,#f6f3ff);font-family:"Baloo 2",sans-serif;font-weight:800;font-size:max(calc(var(--w)*.6),28px);color:var(--tc);
  box-shadow:0 6px 0 #cfc6f8,0 10px 16px #4a2fd11a;border:2px solid #e3ddfb;transition:transform .12s,opacity .2s}
.pk-tile:nth-child(4n+2){--tc:#ff5c93}.pk-tile:nth-child(4n+3){--tc:#12b5a0}.pk-tile:nth-child(4n+4){--tc:#ff8a3d}
.pk-tile:hover{transform:translateY(-3px)}
.pk-tile:active{transform:translateY(4px);box-shadow:0 2px 0 #cfc6f8}
.pk-tile.used{opacity:.18;pointer-events:none;transform:scale(.9);box-shadow:none}
.pk-tiles.num .pk-tile{width:max(min(88px,calc((100vw - 90px)/var(--n) - 10px)),58px);font-size:34px}
.pk-build-actions{display:flex;justify-content:center;margin-top:14px}

/* sheet umpan balik */
.pk-sheet{position:fixed;left:0;right:0;bottom:0;z-index:50;padding:18px 20px calc(18px + env(safe-area-inset-bottom));animation:pk-up .35s cubic-bezier(.2,1.2,.4,1) both;box-shadow:0 -12px 40px #1f23502e}
@keyframes pk-up{from{transform:translateY(100%)}to{transform:none}}
.pk-sheet.ok{background:linear-gradient(180deg,#c8f5dc,#aef0cb);color:#0b6b3b}
.pk-sheet.bad{background:linear-gradient(180deg,#ffe3c9,#ffd2ab);color:#8a3d00}
.pk-sheet-in{max-width:820px;margin:0 auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.pk-sheet-emoji{font-size:48px;line-height:1;animation:pk-yay .6s}
.pk-sheet-text{flex:1;min-width:200px}
.pk-sheet-text h3{font-size:clamp(22px,4vw,30px);font-weight:800;line-height:1.1}
.pk-sheet-text p{font-weight:800;margin-top:4px;font-size:16px}
.pk-sheet.ok .pk-btn{background:linear-gradient(180deg,#34d97a,#1fb85c);color:#fff;box-shadow:0 4px 0 #13873f}
.pk-sheet.bad .pk-btn{background:linear-gradient(180deg,#ffa24d,#ff8a3d);color:#fff;box-shadow:0 4px 0 #c25f12}
.pk-gwrap{padding-bottom:150px}

/* ---------- hasil ---------- */
.pk-result{max-width:640px;margin:20px auto 0;text-align:center;background:var(--card);border-radius:36px;padding:36px 28px 32px;box-shadow:0 10px 0 #e3ddfb,0 30px 60px #4a2fd126;position:relative;overflow:hidden}
.pk-trophy{font-size:92px;line-height:1;animation:pk-yay .9s both}
.pk-result h2{font-size:clamp(30px,6vw,42px);font-weight:800;margin:10px 0 4px}
.pk-bigstars{display:flex;justify-content:center;gap:8px;font-size:62px;margin:10px 0}
.pk-bigstars span{animation:pk-star .6s cubic-bezier(.2,1.6,.4,1) both;filter:drop-shadow(0 6px 0 #0000001a)}
.pk-bigstars .off{color:#e5e0f7;filter:none}.pk-bigstars .on{color:#ffc93c}
@keyframes pk-star{from{transform:scale(0) rotate(-90deg);opacity:0}to{transform:none;opacity:1}}
.pk-resnums{display:flex;justify-content:center;gap:12px;margin:10px 0 20px;flex-wrap:wrap}
.pk-resnums div{background:#f6f3ff;border-radius:18px;padding:10px 20px;font-weight:800}
.pk-resnums b{display:block;font-family:"Baloo 2",sans-serif;font-size:28px;color:var(--accent);line-height:1.1}
.pk-resnums small{color:var(--muted);font-size:12px;letter-spacing:1px;text-transform:uppercase}
.pk-result-btns{display:flex;flex-direction:column;gap:12px;align-items:stretch;max-width:380px;margin:0 auto}
.pk-upsell{margin:18px auto 0;max-width:420px;background:linear-gradient(120deg,#fff6d6,#ffe49a);border-radius:22px;padding:16px 18px;text-align:left;color:#4a3300;font-weight:700;font-size:14.5px}
.pk-upsell b{display:block;font-family:"Baloo 2",sans-serif;font-size:19px;margin-bottom:2px}
.pk-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.pk-confetti i{position:absolute;top:-20px;width:10px;height:16px;border-radius:3px;animation:pk-fall linear forwards}
@keyframes pk-fall{to{transform:translateY(560px) rotate(720deg);opacity:.9}}

/* ---------- modal ---------- */
.pk-modal-bg{position:fixed;inset:0;z-index:100;background:#1f235099;backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;padding:0;animation:pk-fade .2s both;overflow-y:auto}
.pk-modal{background:#fff;width:100%;max-width:760px;border-radius:32px 32px 0 0;padding:28px 26px calc(26px + env(safe-area-inset-bottom));position:relative;animation:pk-up .35s cubic-bezier(.2,1.1,.4,1) both;max-height:94vh;overflow-y:auto;margin-top:auto}
.pk-modal-x{position:absolute;right:16px;top:16px;width:40px;height:40px;border-radius:50%;background:#f1edff;font-size:18px;font-weight:800;color:var(--purple-d)}
.pk-modal h2{font-size:clamp(24px,4.5vw,32px);font-weight:800;line-height:1.1;padding-right:44px}
.pk-modal .sub{color:var(--muted);font-weight:700;margin-top:6px}
.pk-benefits{list-style:none;padding:0;margin:16px 0 4px;display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}
.pk-benefits li{font-weight:700;font-size:14.5px;display:flex;gap:8px;align-items:flex-start}
.pk-benefits li::before{content:"✓";flex:none;width:22px;height:22px;border-radius:50%;background:#d9f7e6;color:#0f8a4b;display:grid;place-items:center;font-size:13px;font-weight:800;margin-top:1px}
.pk-plans{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px}
.pk-plan{position:relative;border:3px solid var(--line);border-radius:22px;padding:18px 10px 14px;text-align:center;background:#fff;display:flex;flex-direction:column;gap:2px;align-items:center;box-shadow:0 5px 0 var(--line);transition:transform .12s,border-color .12s}
.pk-plan:hover{transform:translateY(-3px);border-color:var(--purple)}
.pk-plan:active{transform:translateY(3px);box-shadow:0 1px 0 var(--line)}
.pk-plan.best{border-color:var(--yellow);background:linear-gradient(180deg,#fffbea,#fff);box-shadow:0 5px 0 #f0c64d}
.pk-plan-tag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:linear-gradient(90deg,#ff8a3d,#ff5c93);color:#fff;font-size:11px;font-weight:800;padding:4px 11px;border-radius:999px;white-space:nowrap}
.pk-plan h4{font-family:"Baloo 2",sans-serif;font-size:19px;font-weight:800}
.pk-plan .price{font-family:"Baloo 2",sans-serif;font-size:26px;font-weight:800;color:var(--purple-d);line-height:1.1}
.pk-plan .per{font-size:12.5px;color:var(--muted);font-weight:700}
.pk-plan .save{font-size:12px;font-weight:800;color:#0f8a4b;background:#d9f7e6;border-radius:999px;padding:3px 10px;margin-top:6px}
.pk-plan .pk-btn{margin-top:10px;font-size:14px;padding:9px 14px;width:100%}
.pk-redeem{margin-top:22px;background:#f6f3ff;border-radius:22px;padding:16px 18px}
.pk-redeem label{font-weight:800;font-size:15px;display:block;margin-bottom:8px}
.pk-redeem-row{display:flex;gap:10px;flex-wrap:wrap}
.pk-input{flex:1;min-width:180px;font:800 18px/1 "Nunito",sans-serif;letter-spacing:1px;text-transform:uppercase;border:3px solid var(--line);border-radius:16px;padding:14px 16px;background:#fff;color:var(--ink);outline:none}
.pk-input:focus{border-color:var(--purple)}
.pk-input.txt{text-transform:none;letter-spacing:0}
.pk-err{color:#c53b37;font-weight:800;font-size:14px;margin-top:8px;min-height:1px}
.pk-steps{list-style:none;padding:0;margin:18px 0 8px;display:grid;gap:10px;counter-reset:s}
.pk-steps li{counter-increment:s;display:flex;gap:12px;align-items:flex-start;font-weight:700;background:#f6f3ff;border-radius:16px;padding:12px 14px}
.pk-steps li::before{content:counter(s);flex:none;width:30px;height:30px;border-radius:50%;background:var(--purple);color:#fff;display:grid;place-items:center;font-weight:800;font-family:"Baloo 2",sans-serif}
.pk-avatars{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.pk-avatar{width:58px;height:58px;border-radius:18px;background:#f1edff;font-size:32px;display:grid;place-items:center;border:3px solid transparent}
.pk-avatar.sel{border-color:var(--purple);background:#e7e0ff;transform:scale(1.08)}
.pk-modal-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.pk-modal-actions .pk-btn{flex:1}
.pk-loading{position:fixed;inset:0;z-index:120;background:#ffffffcc;display:grid;place-items:center}
.pk-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:130;background:var(--ink);color:#fff;font-weight:800;padding:12px 20px;border-radius:16px;max-width:92vw;animation:pk-fade .25s both}

/* ---------- responsif ---------- */
@media (max-width:900px){
  .pk-features{grid-template-columns:1fr 1fr}
  .pk-plans{grid-template-columns:1fr 1fr}
  .pk-float.f4{display:none}
  .pk-hero{padding:34px 26px}
  .pk-float.f1{width:78px;height:78px;font-size:46px}.pk-float.f2{display:none}.pk-float.f3{width:72px;height:72px;font-size:42px}
}
@media (max-width:760px){
  .pk-stairs{grid-template-columns:repeat(5,1fr);row-gap:26px}
  .pk-step{--h:calc(128px + var(--j)*20px)}
  .pk-step-title{display:none}
  .pk-step-n{font-size:30px}
  .pk-stars{font-size:12px}
}
@media (max-width:640px){
  .pk-view{padding:12px 14px 36px}
  .pk-tracks{grid-template-columns:1fr}
  .pk-track-art{height:130px;font-size:64px}
  .pk-hero{border-radius:26px;padding:28px 22px 26px;min-height:0}
  .pk-hero p{font-size:15.5px}
  .pk-float{opacity:.9}.pk-float.f1{right:4%;top:6%;width:60px;height:60px;font-size:36px;border-radius:16px}.pk-float.f3{display:none}
  .pk-wordmark{font-size:24px}.pk-logo svg{width:38px;height:38px}
  .pk-promo{padding:24px 22px}.pk-promo h3{font-size:23px}
  .pk-section-title{font-size:22px;margin-top:28px}
  .pk-qcard{padding:18px 16px 22px;border-radius:26px}
  .pk-opts{gap:10px}.pk-opts.c4{grid-template-columns:repeat(2,1fr)}
  .pk-opt{min-height:92px;border-radius:20px}
  .pk-benefits{grid-template-columns:1fr}
  .pk-modal{padding:24px 18px calc(22px + env(safe-area-inset-bottom))}
  .pk-plans{gap:10px}
  .pk-seq span{min-width:52px;height:60px;font-size:30px}
  .pk-wordbox span{width:42px;height:52px;font-size:28px}
  .pk-gbar{gap:8px}.pk-score{padding:8px 10px}
  .pk-sheet-in{gap:10px}.pk-sheet-emoji{font-size:38px}.pk-sheet .pk-btn{width:100%}
  .pk-bigstars{font-size:50px}
}
@media (max-width:380px){.pk-features{grid-template-columns:1fr}.pk-plans{grid-template-columns:1fr}.pk-top-actions .pk-btn-sm{padding:8px 12px}}
@media (prefers-reduced-motion:reduce){.pk-root *,.pk-root *::before,.pk-root *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media (min-width:700px){.pk-modal-bg{align-items:center;padding:24px}.pk-modal{border-radius:32px;margin:auto}}

.pk-install{margin-top:34px;border-radius:28px;padding:26px 30px;background:linear-gradient(120deg,#2b2370,#4a2fd1);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;box-shadow:0 8px 0 #1f1a58,0 22px 40px #4a2fd133}
.pk-install h3{font-size:24px;font-weight:800}.pk-install p{color:#d9d2ff;font-weight:700;margin-top:4px;max-width:440px}
.pk-install-btns{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:640px){.pk-install{padding:22px 20px}.pk-install-btns{width:100%}.pk-install-btns .pk-btn{flex:1}}
