/*
Theme Name: AppShelf
Theme URI: https://masbaim.com/
Author: Masbaim
Description: Tema WordPress modern untuk menampilkan aplikasi Play Store dan aplikasi lainnya. Dilengkapi jenis konten "Aplikasi", mode gelap, filter platform, dan pengaturan lewat Customizer.
Version: 1.1.3
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: appshelf
*/

:root{
  --bg:#f6f5ff; --surface:#ffffff; --text:#14122b; --muted:#6b6a85; --line:#e6e4f5;
  --accent:#6d4aff; --accent-2:#14c8a8; --accent-soft:rgba(109,74,255,.1);
  --grad:linear-gradient(135deg,#6d4aff 0%,#14c8a8 100%);
  --r:22px; --shadow:0 14px 40px -16px rgba(60,40,160,.3);
  --font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --w:1160px;
}
[data-theme="dark"]{
  --bg:#0c0a1e; --surface:#161331; --text:#f2f0ff; --muted:#9d9bc2; --line:#2a2650;
  --accent-soft:rgba(140,115,255,.16); --shadow:0 14px 40px -16px #000;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.wrap{width:min(var(--w),92%);margin-inline:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:#fff;color:#000;padding:8px 12px;z-index:99;border-radius:8px}

/* Header */
.site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(16px) saturate(1.4);background:color-mix(in srgb,var(--bg) 78%,transparent);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:20px;height:70px}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:1.12rem;letter-spacing:-.02em}
.brand .logo{width:38px;height:38px;border-radius:12px;background:var(--grad);display:grid;place-items:center;color:#fff;font-size:1.05rem;box-shadow:0 8px 20px -8px var(--accent)}
.brand small{display:block;font-weight:500;font-size:.72rem;color:var(--muted);letter-spacing:0;margin-top:-3px}
.custom-logo{width:38px;height:38px;border-radius:12px}
.nav{margin-left:auto}
.nav ul{list-style:none;padding:0;display:flex;gap:6px}
.nav a{padding:9px 16px;border-radius:999px;font-weight:600;font-size:.92rem;color:var(--muted);transition:.2s}
.nav a:hover,.nav .current-menu-item a{background:var(--accent-soft);color:var(--accent)}
.icon-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;display:grid;place-items:center;font-size:1.05rem}
.burger{display:none}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;font-weight:700;font-size:.92rem;border:1px solid transparent;cursor:pointer;transition:.2s;font-family:inherit}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 12px 26px -12px var(--accent)}
.btn-primary:hover{transform:translateY(-2px)}
.btn-ghost{background:var(--surface);border-color:var(--line);color:var(--text)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-sm{padding:8px 15px;font-size:.82rem}

/* Hero */
.hero{position:relative;padding:84px 0 70px;overflow:hidden}
.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;z-index:0}
.hero::before{width:460px;height:460px;background:#6d4aff;top:-140px;left:-100px;opacity:.28}
.hero::after{width:420px;height:420px;background:#14c8a8;right:-100px;bottom:-120px;opacity:.26}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:50px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:7px 15px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:.8rem;font-weight:700;color:var(--accent)}
.eyebrow i{width:8px;height:8px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 4px rgba(20,200,168,.2)}
h1{font-size:clamp(2.2rem,5vw,3.8rem);line-height:1.08;letter-spacing:-.035em;font-weight:800;margin:20px 0 18px}
h1 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:1.08rem;color:var(--muted);max-width:540px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0 34px}
.stats{display:flex;gap:34px;flex-wrap:wrap}
.stats b{display:block;font-size:1.6rem;font-weight:800;letter-spacing:-.02em}
.stats span{font-size:.82rem;color:var(--muted)}

/* Phone mockup */
.phone-stage{display:grid;place-items:center}
.phone{width:min(290px,80%);aspect-ratio:9/18.5;border-radius:42px;background:var(--surface);border:8px solid var(--text);box-shadow:var(--shadow),0 0 0 1px var(--line);padding:42px 18px 20px;position:relative;transform:rotate(4deg);animation:float 6s ease-in-out infinite}
[data-theme="dark"] .phone{border-color:#2d2958}
.phone::before{content:"";position:absolute;top:12px;left:50%;translate:-50% 0;width:78px;height:20px;border-radius:12px;background:var(--text)}
[data-theme="dark"] .phone::before{background:#2d2958}
.phone h4{font-size:.8rem;color:var(--muted);font-weight:600;margin-bottom:14px}
.app-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 10px}
.app-grid div{text-align:center;font-size:.62rem;color:var(--muted);font-weight:600}
.app-grid .ic{width:100%;aspect-ratio:1;border-radius:22%;overflow:hidden;margin-bottom:5px;box-shadow:0 8px 16px -8px rgba(0,0,0,.4)}
.app-grid .ic img{width:100%;height:100%;object-fit:cover}
@keyframes float{50%{transform:rotate(4deg) translateY(-12px)}}
.ph{display:grid;place-items:center;width:100%;height:100%;color:#fff;font-weight:800;font-size:1.2rem;background:linear-gradient(135deg,hsl(var(--h,260) 80% 58%),hsl(calc(var(--h,260) + 50) 80% 52%))}

/* Sections */
section{padding:64px 0}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:32px;flex-wrap:wrap}
.sec-head h2{font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.03em;line-height:1.15}
.sec-head p{color:var(--muted);margin-top:6px}

/* What's new */
.news{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.news a{display:flex;gap:14px;align-items:center;padding:16px;border-radius:18px;background:var(--surface);border:1px solid var(--line);transition:.25s}
.news a:hover{border-color:var(--accent);transform:translateY(-3px)}
.news .ic{width:50px;height:50px;border-radius:14px;overflow:hidden;flex:none}
.news .ic img{width:100%;height:100%;object-fit:cover}
.news b{display:block;font-size:.95rem;line-height:1.3}
.news small{color:var(--muted);font-size:.78rem}
.tag-new{margin-left:auto;font-size:.68rem;font-weight:800;color:var(--accent-2);background:rgba(20,200,168,.14);padding:3px 9px;border-radius:99px}

/* Filter chips */
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip-btn{padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font:600 .85rem var(--font);cursor:pointer;transition:.2s}
.chip-btn.on,.chip-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px}
.card{display:flex;flex-direction:column;gap:16px;padding:24px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);transition:.3s;position:relative;overflow:hidden}
.card::after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:.35s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.card:hover::after{transform:scaleX(1)}
.card-head{display:flex;gap:16px;align-items:center}
.card-icon{width:68px;height:68px;border-radius:20px;overflow:hidden;flex:none;box-shadow:0 10px 22px -10px rgba(0,0,0,.45)}
.card-icon img{width:100%;height:100%;object-fit:cover}
.card h3{font-size:1.15rem;letter-spacing:-.02em;line-height:1.25}
.meta{font-size:.78rem;color:var(--muted);margin-top:3px}
.badge{margin-left:auto;align-self:flex-start;font-size:.7rem;font-weight:800;padding:4px 11px;border-radius:99px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}
.desc{color:var(--muted);font-size:.92rem;flex:1}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.card.hide{display:none}

/* Info / CTA */
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tile{padding:28px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line)}
.tile .ico{width:46px;height:46px;border-radius:14px;background:var(--accent-soft);display:grid;place-items:center;font-size:1.25rem;margin-bottom:14px}
.tile h3{margin-bottom:6px;font-size:1.05rem}.tile p{color:var(--muted);font-size:.9rem}
.cta{padding:48px;border-radius:30px;background:var(--grad);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;position:relative;overflow:hidden}
.cta h2{font-size:clamp(1.5rem,3vw,2.1rem);letter-spacing:-.03em;line-height:1.2}
.cta p{opacity:.9;margin-top:6px}
.cta .btn{background:#fff;color:#2a1f7a}

/* Single */
.app-hero{display:flex;gap:28px;align-items:center;padding:60px 0 20px;flex-wrap:wrap}
.app-hero .card-icon{width:128px;height:128px;border-radius:32px}
.app-hero h1{margin:0 0 6px;font-size:clamp(1.9rem,4vw,2.8rem)}
.facts{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 20px}
.facts span{padding:6px 14px;border-radius:99px;background:var(--surface);border:1px solid var(--line);font-size:.82rem;font-weight:600;color:var(--muted)}
.shots{display:flex;gap:16px;overflow-x:auto;padding:10px 0 20px;scroll-snap-type:x mandatory}
.shots img{height:420px;width:auto;border-radius:22px;border:1px solid var(--line);scroll-snap-align:start;box-shadow:var(--shadow)}
.entry{max-width:760px;font-size:1.02rem}
.entry>*+*{margin-top:1.1em}.entry h2,.entry h3{margin-top:1.6em;letter-spacing:-.02em}
.entry ul,.entry ol{padding-left:1.4em}.entry a{color:var(--accent);text-decoration:underline}

/* Footer */
.site-footer{margin-top:40px;border-top:1px solid var(--line);padding:38px 0;color:var(--muted);font-size:.88rem}
.foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
.foot ul{list-style:none;padding:0;display:flex;gap:18px}
.foot a:hover{color:var(--accent)}

/* Reveal */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s,transform .6s}
.reveal.in{opacity:1;transform:none}

@media(max-width:880px){
  .hero-grid{grid-template-columns:1fr}.phone-stage{order:-1}.phone{width:230px}
  .bento{grid-template-columns:1fr}.hero{padding-top:44px}
  .burger{display:grid}
  .nav{position:absolute;top:70px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);padding:12px 4%;display:none;margin:0}
  .nav.open{display:block}.nav ul{flex-direction:column}
  .bar .btn-primary{display:none}.nav{margin-left:0}.bar .spacer{margin-left:auto}
  .cta{padding:30px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* Blog */
.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.post-card{display:block;padding:24px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);transition:.3s}
.post-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--accent)}
.post-card small{color:var(--accent);font-weight:700;font-size:.78rem}
.post-card h3{margin:8px 0;font-size:1.12rem;line-height:1.3;letter-spacing:-.02em}
.post-card p{color:var(--muted);font-size:.9rem}
.pagination{margin-top:30px;display:flex;gap:8px;flex-wrap:wrap}
.pagination .page-numbers{padding:8px 15px;border-radius:99px;border:1px solid var(--line);background:var(--surface);font-weight:600}
.pagination .current{background:var(--accent);color:#fff;border-color:var(--accent)}
