/* ==========================================================
   Tema publik: landing + autentikasi (gaya referensi "Robust Team Capabilities")
   ========================================================== */
body.t-public{background:#FAFBFD;--brand:#7C5CFC}
.wrap{width:min(1180px,100% - 40px);margin-inline:auto}

/* ---------- navigasi ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(250,251,253,.82);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .25s}
.nav.stuck{border-color:var(--line)}
.nav .wrap{height:68px;display:flex;align-items:center;gap:28px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;letter-spacing:-.03em}
.logo .mk{width:36px;height:36px;border-radius:12px;background:conic-gradient(from 210deg,#ffb800,#ff1f4b,#c27cff,#7C5CFC,#ffb800);display:grid;place-items:center;position:relative}
.logo .mk::after{content:"";width:14px;height:14px;border-radius:50%;background:#fff}
.nav-links{display:flex;gap:6px;margin-left:12px}
.nav-links a{padding:8px 14px;border-radius:10px;font-weight:500;color:var(--ink-2);font-size:14.5px;transition:background-color .2s}
.nav-links a:hover{background:var(--line-2)}
.nav .sp{flex:1}
.lang{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:7px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;transition:background-color .2s}
.lang:hover{background:var(--line-2)}
.burger{display:none;border:0;background:#fff;border:1px solid var(--line);width:42px;height:42px;border-radius:12px;cursor:pointer}
@media(max-width:900px){.nav-links{display:none}.nav .btn.ghost.hide-m{display:none}}

/* ---------- hero ---------- */
.hero{padding:72px 0 56px;display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:start}
.tag{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13px;font-weight:600;margin-bottom:26px}
.tag .pulse{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(23,178,106,.5);animation:pulse 2s infinite}
.tag.off .pulse{background:var(--bad);animation:none}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(23,178,106,0)}100%{box-shadow:0 0 0 0 rgba(23,178,106,0)}}
.hero h1{font-size:clamp(2.5rem,5.6vw,4.4rem);font-weight:700;letter-spacing:-.045em;line-height:1.02;max-width:11.5em}
.hero .sub{margin-top:22px;color:var(--muted);font-size:18px;line-height:1.55;max-width:30em}
.hero .cta{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}
.feat{display:flex;gap:16px;margin-bottom:26px}
.feat .chip{width:46px;height:46px;border-radius:14px;background:#F0F1F5;display:grid;place-items:center;flex:none;color:var(--ink)}
.feat h3{font-size:19px;font-weight:600;letter-spacing:-.02em;margin:2px 0 6px}
.feat p{color:var(--muted);font-size:15.5px;max-width:24em}
@media(max-width:900px){.hero{grid-template-columns:1fr;gap:20px;padding-top:44px}}

/* ---------- panggung gradien + kartu kaca ---------- */
.stage{position:relative;border-radius:36px;overflow:hidden;min-height:540px;isolation:isolate;background:#ff3b5c}
.stage::before{content:"";position:absolute;inset:-35%;z-index:-1;will-change:transform;
  background:
   radial-gradient(38% 46% at 10% 18%,#ffb800 0,transparent 62%),
   radial-gradient(42% 52% at 48% 28%,#ff1f4b 0,transparent 64%),
   radial-gradient(38% 48% at 88% 22%,#b97bff 0,transparent 62%),
   radial-gradient(46% 56% at 18% 92%,#ffd3ea 0,transparent 62%),
   radial-gradient(44% 54% at 84% 92%,#a2b8ff 0,transparent 62%);
  animation:drift 24s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate3d(-4%,3%,0) rotate(7deg) scale(1.07)}}
.glass{background:rgba(255,255,255,.74);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);border:1px solid rgba(255,255,255,.65);
  border-radius:24px;box-shadow:0 24px 50px -24px rgba(80,10,40,.45)}
.stage .g{position:absolute;opacity:0;transform:translateY(22px);animation:stage-in .8s var(--ease) forwards}
.stage .g1{left:6%;top:30%;width:min(380px,40%);padding:22px;animation-delay:.15s}
.stage .g2{left:41%;top:22%;width:min(250px,27%);padding:12px;animation-delay:.3s}
.stage .g3{right:5%;top:40%;width:min(210px,22%);padding:20px;text-align:center;animation-delay:.45s}
.stage .g0{left:50%;top:10%;transform:translate(-50%,22px);padding:10px 14px;display:flex;gap:12px;align-items:center;animation:stage-in0 .8s var(--ease) .05s forwards}
@keyframes stage-in{to{opacity:1;transform:none}}
@keyframes stage-in0{to{opacity:1;transform:translate(-50%,0)}}
.stack{display:flex}.stack i{width:28px;height:28px;border-radius:50%;border:2px solid #fff;margin-left:-8px;display:grid;place-items:center;font-size:10px;font-style:normal;font-weight:700;color:#fff}
.stack i:first-child{margin-left:0}
.g0 b{font-size:13px;display:block;line-height:1.2}.g0 small{color:var(--muted);font-size:12px}
.g0 .sel{margin-left:8px;background:rgba(22,23,29,.08);border-radius:10px;padding:7px 12px;font-size:13px;font-weight:600}
.g1 h4{display:flex;gap:8px;align-items:center;font-size:20px;font-weight:600;padding-bottom:14px;border-bottom:1px solid rgba(22,23,29,.1)}
.g1 .kv{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}
.g1 .kv small{color:var(--muted);font-size:12.5px;display:block}.g1 .kv b{font-size:15px;font-weight:600}
.pbar{height:8px;background:rgba(22,23,29,.1);border-radius:99px;overflow:hidden}
.pbar i{display:block;height:100%;width:64%;background:linear-gradient(90deg,var(--brand),#ff5d8f);border-radius:99px;transform-origin:left;animation:grow 1.4s var(--ease) .8s both}
@keyframes grow{from{transform:scaleX(0)}}
.g1 .line{display:flex;justify-content:space-between;font-size:13px;margin-top:8px;color:var(--ink-2)}
.g2 .img{height:150px;border-radius:16px;background:linear-gradient(135deg,#ff9a3c,#ff2d75 45%,#7c5cfc 75%,#4ac0ff)}
.g2 .meta{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);padding:12px 4px 4px}
.g2 p{font-weight:600;font-size:14px;padding:4px 4px 2px;line-height:1.35}
.g3 .av{width:60px;height:60px;border-radius:50%;margin:0 auto 10px;background:linear-gradient(135deg,#ffd9a8,#ff8fb1);display:grid;place-items:center;font-weight:800;font-size:20px;color:#7a2146}
.g3 b{display:block;font-size:15px}.g3 small{color:var(--muted);font-size:13px}
.g3 .btn{margin-top:12px;height:38px;font-size:13.5px}
@media(max-width:900px){
  .stage{padding:20px;display:flex;flex-direction:column;gap:14px;min-height:0;border-radius:28px}
  .stage .g{position:relative;left:auto!important;right:auto!important;top:auto!important;width:100%!important;transform:translateY(22px)}
  .stage .g0{transform:translateY(22px);animation-name:stage-in}
  .stage .g0{justify-content:center}
}

/* ---------- section umum ---------- */
.sec{padding:96px 0 0}
.sec-h{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:34px;flex-wrap:wrap}
.sec-h h2{font-size:clamp(1.9rem,3.6vw,2.9rem);font-weight:700;letter-spacing:-.04em;max-width:14em}
.sec-h p{color:var(--muted);max-width:26em}

/* jenjang */
.levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px}
.lv{position:relative;background:#fff;border-radius:26px;padding:28px;border:1px solid var(--line);display:flex;flex-direction:column;gap:14px;overflow:hidden;
  transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.lv::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:var(--g,linear-gradient(90deg,#ffb800,#ff1f4b))}
.lv:nth-child(2){--g:linear-gradient(90deg,#ff1f4b,#c27cff)}.lv:nth-child(3){--g:linear-gradient(90deg,#7C5CFC,#4ac0ff)}
.lv:hover{transform:translateY(-6px);box-shadow:0 28px 50px -26px rgba(60,30,120,.35);border-color:transparent}
.lv .code{font-size:42px;font-weight:800;letter-spacing:-.05em}
.lv .nm{color:var(--muted);margin-top:-8px}
.lv .fee{font-size:13px;color:var(--muted)}.lv .fee b{display:block;font-size:22px;color:var(--ink);letter-spacing:-.03em}
.lv .pg{display:flex;gap:6px;flex-wrap:wrap}
.lv .pg span{font-size:12.5px;font-weight:600;background:#F2F3F7;padding:5px 10px;border-radius:99px}
.lv .btn{margin-top:auto}

/* alur */
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative}
.flow::before{content:"";position:absolute;left:10%;right:10%;top:23px;height:2px;background:repeating-linear-gradient(90deg,#d6d9e4 0 8px,transparent 8px 16px)}
.fl{position:relative;text-align:center;padding:0 10px}
.fl .n{width:46px;height:46px;border-radius:50%;margin:0 auto 14px;background:#fff;border:2px solid var(--brand);color:var(--brand);font-weight:800;display:grid;place-items:center;position:relative;transition:background-color .3s,color .3s,transform .3s var(--spring)}
.fl:hover .n{background:var(--brand);color:#fff;transform:scale(1.1)}
.fl p{font-weight:600;font-size:14.5px;max-width:11em;margin:auto}
@media(max-width:800px){.flow{grid-template-columns:1fr;gap:18px}.flow::before{display:none}.fl{display:flex;gap:14px;text-align:left;align-items:center}.fl .n{margin:0}.fl p{margin:0;max-width:none}}

/* jadwal */
.sched{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}
.sc{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px 20px;transition:transform .3s var(--ease),box-shadow .3s}
.sc:hover{transform:translateX(4px);box-shadow:var(--shadow-m)}
.sc .d{width:62px;text-align:center;flex:none;background:var(--brand-soft);color:var(--brand-ink);border-radius:14px;padding:8px 0}
.sc .d b{display:block;font-size:22px;line-height:1.05;font-weight:800}.sc .d small{font-size:11.5px;font-weight:600}
.sc h4{font-size:16px;font-weight:600;letter-spacing:-.01em}.sc p{color:var(--muted);font-size:13.5px}
.sc.past{opacity:.55}
@media(max-width:800px){.sched{grid-template-columns:1fr}}

/* cek hasil */
.cr{display:grid;grid-template-columns:1fr 1fr;border-radius:32px;overflow:hidden;background:#fff;border:1px solid var(--line)}
.cr .art{position:relative;padding:44px;color:#fff;background:#1b1530;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-height:280px}
.cr .art::before{content:"";position:absolute;inset:-30%;z-index:-1;background:radial-gradient(40% 50% at 20% 30%,#7C5CFC,transparent 65%),radial-gradient(40% 50% at 80% 70%,#ff2d75,transparent 65%),radial-gradient(35% 45% at 70% 10%,#ffb800,transparent 65%);animation:drift 20s ease-in-out infinite alternate}
.cr .art h3{font-size:30px;font-weight:700;letter-spacing:-.04em}.cr .art p{opacity:.8;margin-top:8px}
.cr form{padding:40px}
@media(max-width:800px){.cr{grid-template-columns:1fr}.cr form{padding:26px}}

/* faq */
.faq{display:grid;gap:10px;max-width:820px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:18px;padding:0 22px;transition:border-color .25s,box-shadow .25s}
.faq details[open]{border-color:#d9d2ff;box-shadow:0 14px 30px -22px rgba(124,92,252,.5)}
.faq summary{list-style:none;cursor:pointer;padding:18px 0;font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:22px;font-weight:400;color:var(--muted);transition:transform .3s var(--spring)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{padding:0 0 20px;color:var(--ink-2);max-width:42em}

/* footer */
.foot{margin-top:110px;border-top:1px solid var(--line);padding:34px 0 48px;color:var(--muted);font-size:14px}
.foot .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

/* ---------- autentikasi ---------- */
.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
.auth-art{position:relative;isolation:isolate;overflow:hidden;color:#fff;padding:44px;display:flex;flex-direction:column;justify-content:space-between;background:#ff3b5c}
.auth-art::before{content:"";position:absolute;inset:-35%;z-index:-1;background:
  radial-gradient(40% 48% at 12% 18%,#ffb800,transparent 62%),radial-gradient(45% 55% at 55% 35%,#ff1f4b,transparent 64%),
  radial-gradient(40% 50% at 90% 25%,#b97bff,transparent 62%),radial-gradient(48% 56% at 20% 95%,#7C5CFC,transparent 62%),radial-gradient(44% 54% at 85% 90%,#4ac0ff,transparent 62%);
  animation:drift 24s ease-in-out infinite alternate}
.auth-art .logo{color:#fff}.auth-art .logo .mk::after{background:#fff}
.auth-art h2{font-size:clamp(2rem,3.4vw,3rem);font-weight:700;letter-spacing:-.045em;line-height:1.05;max-width:11em}
.auth-art .glass{color:var(--ink);padding:16px 18px;margin-top:26px;max-width:340px;display:flex;gap:14px;align-items:center}
.auth-art .glass .ic{width:42px;height:42px;border-radius:13px;background:var(--ink);color:#fff;display:grid;place-items:center;flex:none}
.auth-art .glass b{display:block;font-size:14.5px}.auth-art .glass small{color:var(--muted);font-size:12.5px}
.auth-main{display:grid;place-items:center;padding:40px 24px;background:#FAFBFD}
.auth-card{width:min(440px,100%)}
.auth-card h1{font-size:32px;font-weight:700;letter-spacing:-.04em}
.auth-card .lead{color:var(--muted);margin:8px 0 28px}
.auth-card .alt{margin-top:22px;text-align:center;color:var(--muted);font-size:14.5px}
.auth-top{position:absolute;right:24px;top:20px}
.pw{position:relative}.pw button{position:absolute;right:8px;top:6px;border:0;background:none;width:34px;height:34px;border-radius:9px;cursor:pointer;color:var(--muted)}
.pw button:hover{background:var(--line-2)}
.pw-meter{height:4px;border-radius:9px;background:var(--line);margin-top:8px;overflow:hidden}.pw-meter i{display:block;height:100%;width:0;background:var(--bad);transition:width .3s var(--ease),background-color .3s}
.notice{display:flex;gap:12px;padding:14px 16px;border-radius:14px;background:var(--warn-bg);color:#92400e;font-size:14px;margin-bottom:18px}
.devlink{word-break:break-all;background:#F3F4F8;border-radius:12px;padding:12px;font-size:12.5px;margin-bottom:16px}
@media(max-width:900px){.auth{grid-template-columns:1fr}.auth-art{padding:24px 24px 28px;min-height:0}.auth-art h2{font-size:1.9rem;margin-top:22px}.auth-art .glass{display:none}.auth-top{position:static;margin-bottom:14px;text-align:right}}

/* ---------- hasil ---------- */
.res{border-radius:28px;padding:34px;text-align:center;border:1px solid var(--line);background:#fff;position:relative;overflow:hidden}
.res .ricon{width:84px;height:84px;border-radius:28px;margin:0 auto 18px;display:grid;place-items:center;color:#fff;animation:pop .7s var(--spring) both}
@keyframes pop{from{transform:scale(.4) rotate(-12deg);opacity:0}}
.res.ok .ricon{background:linear-gradient(135deg,#17B26A,#7ae0b0)}.res.warn .ricon{background:linear-gradient(135deg,#F79009,#ffd27a)}.res.bad .ricon{background:linear-gradient(135deg,#F04438,#ffa39c)}.res.wait .ricon{background:linear-gradient(135deg,#7C5CFC,#b9a6ff)}
.res h2{font-size:28px;font-weight:700;letter-spacing:-.03em}
.res .who{margin-top:10px;color:var(--muted)}
.res .sim{display:inline-block;margin-top:14px;padding:5px 12px;border-radius:99px;background:var(--warn-bg);color:#92400e;font-size:12.5px;font-weight:700}
.res .note{margin:18px auto 0;max-width:30em;background:var(--line-2);border-radius:14px;padding:14px;font-size:14.5px}
.pagecard{max-width:640px;margin:56px auto}

.alert{display:flex;gap:12px;align-items:flex-start;padding:13px 16px;border-radius:14px;background:var(--bad-bg);color:#b42318;font-size:14px;font-weight:500;margin-bottom:18px;animation:alert-in .4s var(--ease)}
.alert .ico{margin-top:2px}
@keyframes alert-in{from{opacity:0;transform:translateY(-6px)}}