/* Komik KamusKindle — gaya dasar + animasi. Mobile-first. */

:root{
  --ink:#14121f;
  --ink-soft:#2a2740;
  --paper:#fffdf8;
  --bg:#f3eee3;
  --bg-2:#ece6da;
  --line:#e3dccd;
  --muted:#6f6a5c;
  --red:#ff5a36;
  --red-ink:#c9432a;
  --yellow:#ffd23f;
  --green:#12b76a;
  --blue:#4c6fff;
  --purple:#8a5cf6;
  --shadow: 0 18px 44px -18px rgba(20,18,31,.35);
  --shadow-sm: 0 8px 20px -10px rgba(20,18,31,.3);
  --radius: 22px;
  --serif:"Bricolage Grotesque",Georgia,"Times New Roman",serif;
  --sans:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#f4f1ea; --ink-soft:#d8d3e6;
    --paper:#1a1826; --bg:#121018; --bg-2:#1f1c2c; --line:#322e45; --muted:#a39dc2;
    --shadow: 0 18px 44px -18px rgba(0,0,0,.6);
    --shadow-sm: 0 8px 20px -10px rgba(0,0,0,.55);
  }
}
:root[data-theme="dark"]{
  --ink:#f4f1ea; --ink-soft:#d8d3e6;
  --paper:#1a1826; --bg:#121018; --bg-2:#1f1c2c; --line:#322e45; --muted:#a39dc2;
  --shadow: 0 18px 44px -18px rgba(0,0,0,.6);
  --shadow-sm: 0 8px 20px -10px rgba(0,0,0,.55);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font:16px/1.6 var(--sans);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);line-height:1.12;margin:0 0 .5em;letter-spacing:-.01em}
.container{max-width:1120px;margin:0 auto;padding:0 20px}
@media (min-width:640px){.container{padding:0 32px}}

.eyebrow{display:inline-block;font:800 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:10px}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:15px 26px; border-radius:999px; border:2px solid var(--ink);
  font:700 15px var(--sans); text-decoration:none; cursor:pointer;
  background:var(--paper); color:var(--ink);
  transition:transform .18s cubic-bezier(.2,.9,.3,1.3), box-shadow .18s ease, background .18s ease;
  -webkit-tap-highlight-color:transparent; white-space:nowrap;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.98)}
.btn-primary{background:var(--red); border-color:var(--red); color:#fff; box-shadow:0 10px 24px -10px rgba(255,90,54,.6)}
.btn-primary:hover{box-shadow:0 14px 30px -10px rgba(255,90,54,.7)}
.btn-dark{background:var(--ink); border-color:var(--ink); color:var(--paper)}
.btn-ghost{background:transparent}
.btn-lg{padding:18px 32px;font-size:16px}
.btn-block{width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none!important;box-shadow:none}

/* ---------- Nav ---------- */
.nav{
  position:sticky; top:0; z-index:40;
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav .container{display:flex; align-items:center; gap:14px; padding-top:14px; padding-bottom:14px}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; font:800 17px var(--serif); color:var(--ink)}
.brand-mark{
  width:36px;height:36px;border-radius:11px;background:var(--ink);color:var(--yellow);
  display:grid;place-items:center;font:900 18px var(--serif);flex:none;
  box-shadow:3px 3px 0 var(--yellow);
}
.brand b{color:var(--red)}
.nav-links{display:none; gap:26px; margin-left:auto; align-items:center; font:600 14px var(--sans)}
.nav-links a{text-decoration:none;opacity:.78;transition:opacity .15s}
.nav-links a:hover{opacity:1}
@media (min-width:860px){.nav-links{display:flex}}
.nav-cta{margin-left:auto; display:flex; align-items:center; gap:8px}
@media (min-width:860px){.nav-cta{margin-left:0}}
.nav .btn{padding:11px 20px;font-size:13.5px; white-space:nowrap}
.nav-help{display:none; border-color:var(--green); color:var(--green)}
@media (min-width:480px){.nav-help{display:inline-flex}}

/* ---------- Hero ---------- */
.hero{position:relative; padding:56px 0 64px; overflow:hidden}
.hero::before{
  content:""; position:absolute; inset:-20% -10% auto -10%; height:140%;
  background:
    radial-gradient(circle at 18% 22%, color-mix(in srgb, var(--yellow) 55%, transparent) 0, transparent 42%),
    radial-gradient(circle at 86% 8%, color-mix(in srgb, var(--red) 35%, transparent) 0, transparent 38%),
    radial-gradient(circle at 70% 85%, color-mix(in srgb, var(--purple) 28%, transparent) 0, transparent 40%);
  filter:blur(40px); z-index:0; pointer-events:none; opacity:.55;
}
.hero-grid{position:relative; z-index:1; display:grid; gap:40px; align-items:center}
@media (min-width:980px){.hero-grid{grid-template-columns:1.05fr .95fr; gap:30px}}
.hero h1{font-size:clamp(32px,6.4vw,54px); font-weight:800}
.hero h1 .hl{position:relative; white-space:nowrap}
.hero h1 .hl::after{
  content:""; position:absolute; left:-2%; right:-2%; bottom:.06em; height:.32em;
  background:var(--yellow); z-index:-1; border-radius:4px; transform:rotate(-1deg);
}
.hero p.lead{font-size:17px; color:var(--muted); max-width:46ch; margin:0 0 26px}
.hero-ctas{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:28px}
.hero-trust{display:flex; flex-wrap:wrap; gap:18px; font:600 13px var(--sans); color:var(--muted)}
.hero-trust span{display:inline-flex; align-items:center; gap:7px}
.hero-trust b{color:var(--ink)}
.dot-ok{width:7px;height:7px;border-radius:50%;background:var(--green);flex:none}

/* --- Hero visual: tumpukan kartu contoh hasil terjemahan (gambar asli) --- */
.hero-art{position:relative; animation:fadeUp .8s ease both .15s}
.sample-stack{position:relative; width:100%; max-width:560px; margin:0 auto; aspect-ratio:1/.84}
.sample{
  position:absolute; left:50%; top:50%; width:var(--w,86%); margin:0; overflow:hidden; cursor:zoom-in;
  border:3px solid var(--ink); border-radius:14px; background:#fff; box-shadow:var(--shadow);
  transform:translate(-50%,-50%);
  transition:transform .85s cubic-bezier(.2,.8,.2,1), opacity .6s ease, filter .6s ease;
  will-change:transform; animation:floaty 6s ease-in-out infinite;
}
.sample:nth-child(2){animation-delay:-2s}
.sample:nth-child(3){animation-delay:-4s}
.sample:nth-child(4){animation-delay:-1s}
.sample:nth-child(5){animation-delay:-3s}
.sample:focus-visible{outline:3px solid var(--red); outline-offset:3px}
.sample img{display:block; width:100%; height:auto}
.sample[data-pos="0"]{transform:translate(-50%,-50%) rotate(-1.5deg); z-index:3; opacity:1}
.sample[data-pos="1"]{transform:translate(-33%,-55%) rotate(5deg) scale(.88); z-index:2; opacity:.97; filter:brightness(.93)}
.sample[data-pos="2"]{transform:translate(-67%,-45%) rotate(-6deg) scale(.8); z-index:1; opacity:.92; filter:brightness(.87)}
.sample[data-pos="3"],.sample[data-pos="4"],.sample[data-pos="5"],.sample[data-pos="6"]{
  transform:translate(-50%,-50%) scale(.7); z-index:0; opacity:0; pointer-events:none;
}
.sample-chip{
  position:absolute; left:10px; bottom:10px; padding:5px 11px; border-radius:999px;
  background:var(--ink); color:var(--yellow); font:800 11px/1.2 var(--sans); letter-spacing:.03em;
  opacity:0; transform:translateY(6px); transition:opacity .4s ease .25s, transform .4s ease .25s;
}
.sample[data-pos="0"] .sample-chip{opacity:1; transform:none}
.sample-ui{display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; margin-top:20px}
.sample-dots{display:flex; align-items:center; gap:8px}
.sample-dots button{
  width:10px; height:10px; padding:0; border-radius:999px; border:2px solid var(--ink); background:transparent;
  cursor:pointer; transition:width .3s ease, background .3s ease, border-color .3s ease;
}
.sample-dots button[aria-current="true"]{width:28px; background:var(--red); border-color:var(--red)}
.sample-hint{font:600 12.5px var(--sans); color:var(--muted)}
@keyframes floaty{0%,100%{translate:0 0}50%{translate:0 -9px}}

/* --- Pratinjau gambar penuh (lightbox) --- */
.lightbox{
  position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px;
  background:rgba(14,12,22,.9); animation:fadeIn .25s ease; cursor:zoom-out;
}
.lightbox[hidden]{display:none}
.lightbox img{
  max-width:min(96vw,980px); max-height:86vh; width:auto; height:auto; border-radius:12px; border:3px solid #fff;
  box-shadow:0 30px 80px rgba(0,0,0,.6); animation:zoomIn .35s cubic-bezier(.2,.9,.3,1.1); background:#fff;
}
.lightbox-close{
  position:absolute; top:14px; right:16px; width:46px; height:46px; border-radius:50%; border:0;
  background:#fff; color:#14121f; font-size:28px; line-height:1; cursor:pointer;
}
body.lb-open{overflow:hidden}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes zoomIn{from{opacity:0; transform:scale(.92)}to{opacity:1; transform:none}}

/* ---------- Section generic ---------- */
section{padding:64px 0}
.section-head{max-width:620px; margin:0 auto 42px; text-align:center}
.section-head p{color:var(--muted); font-size:16px; margin:0}
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1; transform:none}

/* ---------- Steps ---------- */
.steps{display:grid; gap:18px; grid-template-columns:repeat(2,1fr)}
@media (min-width:760px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{position:relative; background:var(--paper); border:1px solid var(--line); border-radius:18px; padding:24px 18px; box-shadow:var(--shadow-sm); transition:transform .25s ease}
.step:hover{transform:translateY(-5px)}
.step .num{width:38px; height:38px; border-radius:11px; background:var(--ink); color:var(--yellow); display:grid; place-items:center; font:800 16px var(--serif); margin-bottom:14px}
.step h3{font-size:17px; margin-bottom:6px}
.step p{margin:0; color:var(--muted); font-size:13.5px; line-height:1.55}
.step-arrow{display:none}
@media (min-width:760px){
  .step-arrow{display:block; position:absolute; right:-14px; top:50%; transform:translateY(-50%); color:var(--line); font-size:20px}
}

/* ---------- Pricing ---------- */
.price-wrap{display:grid; gap:24px; align-items:start}
@media (min-width:900px){.price-wrap{grid-template-columns:.95fr 1.05fr}}
.price-card{
  position:relative; background:var(--ink); color:#fff; border-radius:26px; padding:34px 28px;
  box-shadow:var(--shadow); overflow:hidden;
}
.price-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% -10%, rgba(255,210,63,.35), transparent 55%);pointer-events:none}
.price-tag{font:800 13px var(--sans); letter-spacing:.1em; text-transform:uppercase; color:var(--yellow); margin-bottom:10px}
.price-amount{font:800 50px/1 var(--serif); margin-bottom:4px}
.price-amount small{font-size:17px; font-weight:600; color:#cfc9e6}
.price-sub{color:#c6c1dc; font-size:14px; margin-bottom:22px}
.price-list{list-style:none; margin:0 0 26px; padding:0; display:grid; gap:11px; font-size:14px}
.price-list li{display:flex; gap:10px; align-items:flex-start}
.price-list li::before{content:"✓"; color:var(--green); font-weight:900; flex:none}
.calc{background:var(--paper); border:1px solid var(--line); border-radius:22px; padding:26px; box-shadow:var(--shadow-sm)}
.calc h3{font-size:18px; margin-bottom:4px}
.calc p.hint{color:var(--muted); font-size:13.5px; margin:0 0 18px}
.calc-row{display:flex; align-items:center; gap:14px; margin-bottom:18px}
.calc-row input[type=range]{flex:1; accent-color:var(--red)}
.calc-num{font:800 20px var(--serif); min-width:88px; text-align:right}
.calc-result{display:flex; align-items:center; justify-content:space-between; padding:16px 18px; border-radius:14px; background:var(--bg-2); flex-wrap:wrap; gap:8px}
.calc-result .big{font:800 26px var(--serif)}
.calc-examples{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px}
.calc-examples button{border:1px solid var(--line); background:var(--paper); border-radius:999px; padding:7px 13px; font:600 12.5px var(--sans); cursor:pointer; color:var(--ink)}
.calc-examples button:hover{border-color:var(--ink)}

/* ---------- Upload / Order ---------- */
.order-section{background:var(--bg-2); border-radius:34px; margin:0 20px; padding:54px 0}
@media (min-width:640px){.order-section{margin:0 32px}}
.order-card{max-width:620px; margin:0 auto; background:var(--paper); border:1px solid var(--line); border-radius:26px; padding:30px 24px; box-shadow:var(--shadow)}
@media (min-width:640px){.order-card{padding:38px}}
.dropzone{
  border:2.5px dashed var(--line); border-radius:18px; padding:30px 18px; text-align:center; cursor:pointer;
  transition:border-color .2s ease, background .2s ease; background:var(--bg); position:relative;
}
.dropzone:hover,.dropzone.drag{border-color:var(--red); background:color-mix(in srgb, var(--red) 6%, var(--bg))}
.dropzone .ic{width:54px; height:54px; margin:0 auto 12px; border-radius:16px; background:var(--ink); color:var(--yellow); display:grid; place-items:center; font-size:24px}
.dropzone strong{display:block; font-size:15px; margin-bottom:4px}
.dropzone small{color:var(--muted)}
.dropzone input{position:absolute; inset:0; opacity:0; cursor:pointer}
.file-chip{display:flex; align-items:center; gap:12px; padding:14px 16px; border-radius:14px; background:var(--bg); border:1px solid var(--line)}
.file-chip .ic{width:40px; height:40px; border-radius:11px; background:var(--red); color:#fff; display:grid; place-items:center; font-weight:800; font-size:13px; flex:none}
.file-chip .info{min-width:0; flex:1}
.file-chip .name{font-weight:700; font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.file-chip .size{color:var(--muted); font-size:12.5px}
.file-chip .remove{border:0; background:none; color:var(--muted); cursor:pointer; font-size:18px; padding:4px 8px}
.field{display:block; margin:18px 0}
.field span{display:block; font:700 13px var(--sans); margin-bottom:7px}
.field input[type=text],.field input[type=email],textarea{
  width:100%; padding:13px 14px; border:1.5px solid var(--line); border-radius:12px; font:inherit; background:var(--paper); color:var(--ink);
}
.field input:focus,textarea:focus{outline:2px solid var(--red); outline-offset:1px; border-color:var(--red)}
.progress-wrap{margin:16px 0; display:none}
.progress-wrap.on{display:block}
.progress-bar{height:10px; border-radius:999px; background:var(--bg-2); overflow:hidden}
.progress-bar>div{height:100%; width:0%; background:linear-gradient(90deg,var(--red),var(--yellow)); border-radius:999px; transition:width .25s ease}
.progress-label{display:flex; justify-content:space-between; font-size:12.5px; color:var(--muted); margin-top:7px}
.alert{padding:12px 14px; border-radius:12px; background:#ffe6df; color:var(--red-ink); font-size:13.5px; font-weight:600; margin:14px 0}
.honeypot{position:absolute; left:-9999px; top:-9999px; opacity:0; height:0; width:0}
.form-step{display:none}
.form-step.on{display:block; animation:fadeUp .4s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.stars{position:relative; display:flex; flex-direction:row-reverse; justify-content:center; gap:2px; border:0; padding:0; margin:0 0 6px}
.stars input{position:absolute; opacity:0; width:0; height:0; pointer-events:none}
.stars label{cursor:pointer; font-size:34px; line-height:1; color:var(--line); transition:color .15s, transform .15s}
.stars label:hover{transform:scale(1.12)}
.stars input:checked ~ label,
.stars label:hover,
.stars label:hover ~ label{color:#ffb400}

/* success screen */
.success-mark{width:66px;height:66px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:30px;margin:0 auto 16px;animation:pop .5s cubic-bezier(.2,1.4,.4,1)}
@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.12)}100%{transform:scale(1)}}
.order-total{text-align:center; padding:20px; border-radius:18px; background:var(--ink); color:#fff; margin:18px 0}
.order-total .amt{font:800 32px var(--serif); color:var(--yellow)}
.order-total small{color:#c6c1dc}
.qris-box{text-align:center; margin:18px 0}
.qris-box img{width:100%; max-width:230px; margin:0 auto; border-radius:16px; border:1px solid var(--line)}
.accounts{display:grid; gap:10px; margin:16px 0}
.account{display:flex; justify-content:space-between; align-items:center; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:var(--bg)}
.account b{font:800 16px monospace; letter-spacing:.5px}
.copy-btn{border:1px solid var(--line); background:var(--paper); border-radius:9px; padding:6px 11px; font:700 12px var(--sans); cursor:pointer}

/* ---------- Testimonials ---------- */
.testi-grid{display:grid; gap:18px; grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.testi-card{background:var(--paper); border:1px solid var(--line); border-radius:20px; padding:22px; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:12px}
.testi-stars{color:#ffb400; letter-spacing:2px; font-size:15px}
.testi-card p{margin:0; font-size:14.5px; color:var(--ink); flex:1}
.testi-who{display:flex; align-items:center; gap:10px; font-size:13px; color:var(--muted)}
.avatar{width:34px; height:34px; border-radius:50%; background:var(--ink); color:var(--yellow); display:grid; place-items:center; font:800 13px var(--serif); flex:none}
.testi-empty{text-align:center; padding:40px 20px; border:1.5px dashed var(--line); border-radius:20px; color:var(--muted)}

/* ---------- FAQ ---------- */
.faq{max-width:760px; margin:0 auto; display:grid; gap:10px}
.faq details{background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:4px 18px}
.faq summary{list-style:none; cursor:pointer; padding:16px 0; font-weight:700; font-size:15px; display:flex; justify-content:space-between; align-items:center; gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; font-size:22px; color:var(--red); transition:transform .25s ease; flex:none}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{margin:0 0 16px; color:var(--muted); font-size:14.5px; line-height:1.65}

/* ---------- Footer ---------- */
footer{border-top:1px solid var(--line); padding:40px 0 30px; margin-top:20px}
.footer-grid{display:flex; flex-wrap:wrap; gap:20px; justify-content:space-between; align-items:center}
.footer-links{display:flex; gap:18px; flex-wrap:wrap; font-size:13.5px; color:var(--muted)}
.footer-links a{text-decoration:none}
.footer-links a:hover{color:var(--ink)}
.footer-note{color:var(--muted); font-size:12.5px; margin-top:18px}

/* ---------- Floating WA button ---------- */
.wa-float{
  position:fixed; right:18px; bottom:18px; z-index:50; width:56px; height:56px; border-radius:50%;
  background:var(--green); color:#fff; display:grid; place-items:center; box-shadow:0 10px 26px -8px rgba(18,183,106,.6);
  text-decoration:none; animation:pulse-ring 2.6s ease-in-out infinite;
}
@keyframes pulse-ring{0%,100%{box-shadow:0 10px 26px -8px rgba(18,183,106,.6)}50%{box-shadow:0 10px 26px -8px rgba(18,183,106,.9),0 0 0 8px rgba(18,183,106,.15)}}

/* ---------- Simple page (testimoni.php) ---------- */
.page-simple{min-height:100vh; display:flex; flex-direction:column; align-items:center; padding:28px 16px 60px}
.simple-wrap{width:100%; max-width:480px}
.simple-wrap>.brand{margin-bottom:26px}
.simple-card{background:var(--paper); border:1px solid var(--line); border-radius:24px; padding:30px 24px; box-shadow:var(--shadow)}
.simple-card.center{text-align:center}
.simple-card h1{font-size:22px}
.simple-card p.muted{color:var(--muted); margin-top:-6px}
.burst{display:inline-block; font:900 13px var(--sans); letter-spacing:.08em; color:#fff; background:var(--red); padding:7px 16px; border-radius:999px; transform:rotate(-2deg); margin-bottom:14px}

/* Perbandingan sebelum & sesudah */
.compare-section{padding-top:24px}
.compare-grid{display:grid; grid-template-columns:1fr; gap:22px; align-items:start; max-width:1000px; margin:0 auto}
@media (min-width:760px){.compare-grid{grid-template-columns:1.1fr .9fr; gap:26px}}
.compare-card{position:relative; margin:0; background:#fff; border:3px solid var(--ink); border-radius:16px; box-shadow:var(--shadow); overflow:hidden; cursor:zoom-in; transition:transform .25s ease}
.compare-card:hover{transform:translateY(-3px)}
.compare-card img{display:block; width:100%; height:auto}
.compare-tag{position:absolute; top:12px; left:12px; z-index:1; padding:6px 13px; border-radius:999px; font:700 12.5px var(--sans); color:#fff; box-shadow:var(--shadow-sm)}
.compare-tag-from{background:#6b6880}
.compare-tag-to{background:var(--red)}
.compare-hint{text-align:center; color:var(--muted); font-size:13px; margin:18px 0 0}
