/* Karya Cipta Guna — gaya situs (Okt 2026)
   Palet & font mengikuti identitas situs lama: krem, navy, kuning ide, biru profesional, hijau tumbuh. */
:root{
  --latar:#f7f8f4; --latar-2:#eef1ea; --tinta:#0c1e3a; --redup:#5b6a7e; --garis:rgba(12,30,58,.12);
  --biru:#0877e8; --biru-tua:#053b8e; --kuning:#ffbe0b; --hijau:#18a84b; --putih:#fff;
  --lebar:1180px; --radius:22px;
  --bayang:0 1px 2px rgba(12,30,58,.05),0 18px 50px rgba(12,30,58,.09);
  --halus:cubic-bezier(.22,1,.36,1);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;overflow-x:clip}
body{margin:0;background:var(--latar);color:var(--tinta);font-family:Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{line-height:1.08;letter-spacing:-.035em;margin:0}
h2{font-size:clamp(2.1rem,4.6vw,3.6rem);font-weight:800}
h3{font-size:1.35rem;font-weight:800;letter-spacing:-.02em}
p{margin:0}
em{font-style:normal}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.lewati{position:absolute;left:-999px;top:8px;background:var(--tinta);color:#fff;padding:10px 16px;border-radius:10px;z-index:100}
.lewati:focus{left:12px}
:focus-visible{outline:3px solid var(--biru);outline-offset:3px;border-radius:8px}

.label{font-size:.78rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--biru)}
.label.terang{color:var(--kuning)}
.kepala-bagian{max-width:640px;display:grid;gap:14px;margin-bottom:56px}
.kepala-bagian p:last-child:not(.label){color:var(--redup);font-size:1.08rem}
.kepala-bagian.tengah{margin-inline:auto;text-align:center;justify-items:center}

/* ---------- tombol ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;background:var(--tinta);color:#fff;
  font-weight:700;text-decoration:none;transition:transform .35s var(--halus),box-shadow .35s var(--halus),background .3s;box-shadow:0 10px 26px rgba(12,30,58,.22)}
.btn:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(12,30,58,.28)}
.btn.garis{background:transparent;color:var(--tinta);box-shadow:inset 0 0 0 2px var(--tinta)}
.btn.garis:hover{background:var(--tinta);color:#fff}
.btn.kecil{padding:10px 18px;font-size:.92rem;box-shadow:none}
.btn.besar{background:var(--kuning);color:var(--tinta);font-size:clamp(1rem,2.4vw,1.35rem);padding:20px 34px}

/* ---------- progres & navigasi ---------- */
.progres{position:fixed;inset:0 0 auto;height:4px;z-index:60;background:transparent}
.progres span{display:block;height:100%;transform-origin:0 50%;transform:scaleX(var(--gulir,0));
  background:linear-gradient(90deg,var(--kuning),var(--biru) 55%,var(--hijau))}
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:16px clamp(16px,4vw,40px);transition:background .4s,box-shadow .4s,padding .4s}
.nav.padat{background:rgba(247,248,244,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--garis);padding-block:10px}
.nav.gelap.padat{background:rgba(12,30,58,.82);box-shadow:0 1px 0 rgba(255,255,255,.08)}
.nav.gelap .merek{color:#fff}
.nav.gelap ul a:not(.btn){color:rgba(255,255,255,.72)}
.nav.gelap ul a:not(.btn):hover,.nav.gelap ul a.aktif:not(.btn){color:#fff;background:rgba(255,255,255,.1)}
.nav.gelap .btn{background:var(--kuning);color:var(--tinta)}
.nav.gelap .menu-btn span:not(.sr){background:#fff}
.merek{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:1.08rem;letter-spacing:-.02em}
.merek img{width:40px}
.merek .k{color:#e0a300}.merek .g{color:var(--hijau)}
.nav ul{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0}
.nav ul a:not(.btn){display:block;padding:8px 14px;border-radius:999px;text-decoration:none;font-weight:600;font-size:.95rem;color:var(--redup);transition:color .2s,background .2s}
.nav ul a:not(.btn):hover,.nav ul a.aktif:not(.btn){color:var(--tinta);background:rgba(12,30,58,.06)}
.menu-btn{display:none;background:none;border:0;width:44px;height:44px;position:relative;cursor:pointer}
.menu-btn span:not(.sr){position:absolute;left:11px;right:11px;height:2px;background:var(--tinta);transition:transform .3s}
.menu-btn span:nth-child(1){top:17px}.menu-btn span:nth-child(2){top:25px}
.menu-btn[aria-expanded=true] span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.menu-btn[aria-expanded=true] span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:24px;
  max-width:var(--lebar);margin:0 auto;padding:120px clamp(16px,4vw,40px) 80px;overflow:visible}
.hero-isi{position:relative;z-index:2;display:grid;gap:26px}
.judul-hero{font-size:clamp(2.6rem,5.2vw,4.6rem);font-weight:800;letter-spacing:-.055em;line-height:.98}
.judul-hero .baris{display:block;overflow:hidden;padding-bottom:.06em}
@media (min-width:821px){.judul-hero .baris{white-space:nowrap}}
.judul-hero .baris>*{display:inline-block;transition:transform 1.1s var(--halus)}
.js .judul-hero .baris>*{transform:translateY(105%)}
.siap .judul-hero .baris>*{transform:none}
.siap .judul-hero .baris:nth-child(2)>*{transition-delay:.12s}
.siap .judul-hero .baris:nth-child(3)>*{transition-delay:.24s}
.kuning{color:#e3a400;background:linear-gradient(transparent 62%,rgba(255,190,11,.35) 62%)}
.hijau{color:var(--hijau)}
.lead{font-size:clamp(1.05rem,1.6vw,1.22rem);color:var(--redup);max-width:540px}
.aksi{display:flex;gap:14px;flex-wrap:wrap}
.hero-maskot{position:relative;margin:0;justify-self:center;width:min(100%,480px)}
.hero-maskot img{position:relative;z-index:1;animation:melayang 6s ease-in-out infinite;filter:drop-shadow(0 30px 40px rgba(8,119,232,.22))}
.lingkar{position:absolute;inset:8% 6%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0,#e3efff 45%,rgba(8,119,232,.12) 70%,transparent 72%)}
.gelembung{position:absolute;z-index:2;background:#fff;padding:12px 18px;border-radius:18px 18px 18px 4px;font-weight:700;font-size:.95rem;
  box-shadow:var(--bayang);white-space:nowrap}
.hero-maskot .gelembung{top:8%;right:-2%;animation:muncul-gelembung .8s 1.1s var(--halus) both}
.gir{position:absolute;z-index:0;opacity:.13;pointer-events:none;background:var(--kuning);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M44 2h12l2 12 9 4 10-7 9 9-7 10 4 9 12 2v12l-12 2-4 9 7 10-9 9-10-7-9 4-2 12H44l-2-12-9-4-10 7-9-9 7-10-4-9-12-2V44l12-2 4-9-7-10 9-9 10 7 9-4zM50 32a18 18 0 1 0 0 36 18 18 0 1 0 0-36z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M44 2h12l2 12 9 4 10-7 9 9-7 10 4 9 12 2v12l-12 2-4 9 7 10-9 9-10-7-9 4-2 12H44l-2-12-9-4-10 7-9-9 7-10-4-9-12-2V44l12-2 4-9-7-10 9-9 10 7 9-4zM50 32a18 18 0 1 0 0 36 18 18 0 1 0 0-36z'/%3E%3C/svg%3E") center/contain no-repeat}
.g1{width:520px;height:520px;top:-120px;left:-200px}
.g2{width:300px;height:300px;bottom:40px;right:-60px;background:var(--biru);opacity:.08}
.isyarat{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:grid;justify-items:center;gap:8px;
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--redup);text-decoration:none;font-weight:700}
.isyarat span{width:24px;height:38px;border:2px solid currentColor;border-radius:14px;position:relative}
.isyarat span::after{content:"";position:absolute;left:50%;top:7px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:currentColor;animation:roda 1.8s infinite}

/* ---------- pita berjalan ---------- */
.pita{background:var(--tinta);color:#fff;overflow:hidden;padding:22px 0;transform:rotate(-1.5deg);margin:30px -10px 0}
.pita-jalur{display:flex;gap:34px;width:max-content;align-items:center;font-size:clamp(1.3rem,3vw,2.2rem);font-weight:800;letter-spacing:-.02em;
  animation:pita 30s linear infinite;transform:skewX(var(--miring,0deg))}
.pita i{font-style:normal;color:var(--kuning);font-size:.8em}

/* ---------- filosofi: cerita lekat ---------- */
.filosofi{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,72px);max-width:var(--lebar);margin:0 auto;
  padding:140px clamp(16px,4vw,40px) 60px}
.cerita-lekat{position:relative}
.cerita-visual{position:sticky;top:calc(50vh - 220px);height:440px;display:grid;place-items:center;border-radius:36px;
  background:linear-gradient(160deg,#fff,var(--latar-2));box-shadow:var(--bayang);overflow:hidden}
.simbol{width:78%;overflow:visible}
.simbol .bag{transition:opacity .7s var(--halus),transform .9s var(--halus),filter .7s;transform-origin:200px 200px;opacity:.16;filter:grayscale(1)}
.simbol .bag-1{fill:var(--kuning)} .simbol .lubang{fill:#fff}
.simbol .bag-2{fill:var(--biru)} .simbol .bag-3{fill:var(--hijau)}
.simbol .bag.nyala{opacity:1;filter:none}
.simbol .bag-1.nyala{transform:rotate(calc(var(--putar,0) * 1deg))}
.simbol .bag-2.nyala{transform:translateY(-6px) scale(1.04)}
.simbol .bag-3.nyala{transform:translate(6px,-6px)}
.cerita-angka{position:absolute;left:28px;bottom:22px;font-weight:800;font-size:3.4rem;letter-spacing:-.05em;color:var(--tinta)}
.cerita-angka small{font-size:1rem;color:var(--redup);margin-left:6px;letter-spacing:0}
.cerita-langkah{display:grid}
.langkah{min-height:72vh;display:grid;align-content:center;gap:16px;padding:20px 0;transition:opacity .6s var(--halus),transform .6s var(--halus)}
.js .langkah{opacity:.25;transform:translateX(18px)}
.js .langkah.aktif{opacity:1;transform:none}
.langkah .tag{justify-self:start;font-weight:800;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;padding:6px 12px;border-radius:999px;
  background:color-mix(in srgb,var(--aksen) 18%,transparent);color:var(--tinta)}
.langkah h3{font-size:clamp(2rem,3.8vw,3rem);letter-spacing:-.04em}
.langkah h3 em{color:var(--aksen)}
.langkah[data-langkah="1"] h3 em{color:#dd9e00}
.langkah p{color:var(--redup);font-size:1.08rem;max-width:480px}
.langkah .alur{color:var(--tinta);font-weight:600;border-left:4px solid var(--aksen);padding-left:14px}
.langkah .alur b{display:block;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--redup)}

/* ---------- layanan ---------- */
.layanan{max-width:var(--lebar);margin:0 auto;padding:120px clamp(16px,4vw,40px)}
.kartu-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.kartu{position:relative;background:#fff;border-radius:var(--radius);padding:30px 26px 34px;box-shadow:var(--bayang);display:grid;gap:12px;align-content:start;
  overflow:hidden;transition:transform .5s var(--halus),box-shadow .5s var(--halus)}
.kartu::before{content:"";position:absolute;inset:auto -30% -60% auto;width:180px;height:180px;border-radius:50%;background:var(--aksen);opacity:.08;transition:transform .6s var(--halus)}
.kartu:hover{transform:translateY(-8px);box-shadow:0 26px 60px rgba(12,30,58,.14)}
.kartu:hover::before{transform:scale(1.6)}
.kartu p{color:var(--redup);font-size:.98rem}
.ikon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:color-mix(in srgb,var(--aksen) 16%,#fff)}
.ikon svg{width:26px;height:26px;fill:none;stroke:var(--tinta);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- proses: buku catatan 3D ----------
   .buku-hidup (dipasang JS) = mode 3D. Tanpa kelas itu (tanpa JS / kurangi gerakan) halaman tampil sebagai kartu biasa. */
.proses{position:relative;background:var(--tinta);color:#fff}
.proses .label{color:var(--kuning)}
.buku-lekat{max-width:var(--lebar);margin:0 auto;padding:110px clamp(16px,4vw,40px);display:grid;grid-template-columns:minmax(0,1fr);gap:28px}
.buku-petunjuk{color:rgba(255,255,255,.65)!important}
.tulis{font-family:Caveat,"Segoe Print","Comic Sans MS",cursive;font-weight:700;letter-spacing:0}
.tulis.besar{font-size:2rem;line-height:1.1;color:var(--biru-tua)}

/* kertas */
.muka{background-color:#fffdf5;color:var(--tinta);border-radius:6px 16px 16px 6px;padding:34px 34px 30px 62px;position:relative;overflow:hidden;
  background-image:linear-gradient(90deg,transparent 46px,rgba(226,72,72,.38) 46px 48px,transparent 48px),
                   repeating-linear-gradient(180deg,transparent 0 31px,rgba(8,119,232,.14) 31px 32px);
  background-position:0 0,0 22px;box-shadow:0 1px 0 rgba(12,30,58,.08)}
.muka h3{font-size:clamp(1.6rem,2.6vw,2.2rem);margin:6px 0 10px}
.muka p{color:var(--redup);font-size:1rem;line-height:32px}
.muka .no{font-size:4.4rem;line-height:1;color:var(--kuning);-webkit-text-stroke:1.5px #d79b00}
.stiker{position:absolute;top:22px;right:22px;width:clamp(70px,8vw,96px);height:auto;transform:rotate(8deg);
  filter:drop-shadow(0 6px 10px rgba(12,30,58,.18));background:#fff;border-radius:50%;padding:6px}
.cek{list-style:none;margin:10px 0 0;padding:0;display:grid}
.cek li{line-height:32px;padding-left:34px;position:relative;font-weight:600}
.cek li::before{content:"✓";position:absolute;left:4px;top:0;font-family:Caveat,cursive;font-size:1.6rem;color:var(--hijau);transform:rotate(-8deg)}
.tempel{font-family:Caveat,cursive;font-weight:700;font-size:1.35rem!important;line-height:1.25!important;color:var(--tinta)!important;
  background:#ffe680;padding:16px 18px;margin-top:22px;max-width:250px;transform:rotate(-3deg);box-shadow:0 10px 18px rgba(12,30,58,.16)}
.daftar-isi{list-style:none;margin:14px 0 0;padding:0}
.daftar-isi li{display:flex;align-items:baseline;gap:8px;line-height:32px;font-weight:600}
.daftar-isi li span{flex:none}
.daftar-isi li::after{content:"";flex:1;border-bottom:2px dotted rgba(12,30,58,.25);order:1}
.daftar-isi li i{order:2;font-style:normal;color:var(--biru);font-weight:800}
.hanya-hp{display:none}
.lanjut{position:absolute;right:30px;bottom:18px;font-size:1.3rem;color:var(--biru)!important;line-height:1!important;transform:rotate(-4deg)}
.proses:not(.buku-hidup) .lanjut{display:none}

/* sampul */
.sampul{background:linear-gradient(145deg,#12305e,var(--tinta) 60%,#081428)!important;color:#fff;display:grid;place-items:center;padding:30px!important;border-radius:6px 18px 18px 6px}
.sampul::before{content:"";position:absolute;inset:0;opacity:.18;background:repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 2px,transparent 2px 6px)}
.sampul-label{position:relative;background:#fffdf5;color:var(--tinta);border-radius:12px;padding:26px 30px;text-align:center;display:grid;justify-items:center;gap:4px;
  box-shadow:0 14px 30px rgba(0,0,0,.35);transform:rotate(-1.5deg)}
.sampul-label .tulis{font-size:1.7rem;color:var(--biru)}
.sampul-label h3{font-size:1.5rem;margin:0}
.sampul-label small{color:var(--redup);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem}
.karet{position:absolute;top:0;bottom:0;right:44px;width:14px;background:linear-gradient(90deg,#d99a00,var(--kuning) 40%,#ffd65a 60%,#d99a00);box-shadow:0 0 8px rgba(0,0,0,.35)}
.sampul-isyarat{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:rgba(255,255,255,.6)!important;font-size:.85rem!important;letter-spacing:.06em;line-height:1.4!important}
.dasar-kanan{display:grid;align-content:center;gap:12px}
.dasar-kanan .btn{justify-self:start;margin-top:8px}
.buku-halaman{text-align:center;font-family:Caveat,cursive;font-size:1.4rem;color:rgba(255,255,255,.7)}
.spiral{display:none}

/* ---- mode statis: kartu biasa ---- */
.proses:not(.buku-hidup) .buku{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.proses:not(.buku-hidup) .lembar{display:contents}
.proses:not(.buku-hidup) .muka{min-height:340px}
.proses:not(.buku-hidup) .dasar-kiri,.proses:not(.buku-hidup) .buku-halaman,.proses:not(.buku-hidup) .sampul-isyarat{display:none}
.proses:not(.buku-hidup) .dasar-kanan{order:99}
.proses:not(.buku-hidup) .dasar-kanan{background:#fffdf5;color:var(--tinta);border-radius:16px;padding:34px}

/* ---- mode 3D (desktop: buka ke samping) ---- */
.buku-hidup{height:calc(100vh + var(--jarak-gulir,400vh))}
.buku-hidup .buku-lekat{position:sticky;top:0;height:100vh;padding-block:88px 24px;align-content:center;gap:18px}
.buku-hidup .kepala-bagian{margin-bottom:0}
.buku-hidup .kepala-bagian h2{font-size:clamp(1.9rem,3.4vw,2.8rem)}
.buku-hidup .buku-panggung{perspective:2200px;perspective-origin:50% 30%;display:grid;place-items:center}
.buku-hidup .buku{--w:min(40vw,430px);--h:min(calc(var(--w) * 1.3),calc(100vh - 290px));
  position:relative;width:calc(var(--w) * 2);height:var(--h);transform-style:preserve-3d;
  transform:translateX(calc((1 - var(--buka,0)) * -25%)) rotateX(calc(14deg - var(--buka,0) * 8deg));
  transition:none}
.buku-hidup .dasar,.buku-hidup .lembar{position:absolute;top:0;width:var(--w);height:100%}
.buku-hidup .dasar-kiri{left:0;opacity:var(--buka,0);background:linear-gradient(225deg,#163566,#0b1c38);border-radius:16px 6px 6px 16px;box-shadow:-18px 24px 40px rgba(0,0,0,.35)}
.buku-hidup .dasar-kanan{left:50%;background-color:#fffdf5;color:var(--tinta);border-radius:6px 16px 16px 6px;padding:34px 34px 30px 62px;
  background-image:linear-gradient(90deg,transparent 46px,rgba(226,72,72,.38) 46px 48px,transparent 48px),repeating-linear-gradient(180deg,transparent 0 31px,rgba(8,119,232,.14) 31px 32px);
  background-position:0 0,0 22px;box-shadow:18px 24px 40px rgba(0,0,0,.35)}
.buku-hidup .dasar-kanan p:not(.tulis){color:var(--redup);line-height:32px}
.buku-hidup .lembar{left:50%;transform-origin:0 50%;transform-style:preserve-3d;
  transform:rotateY(calc(var(--f,0) * -180deg)) translateZ(calc(var(--angkat,0) * 30px))}
.buku-hidup .muka{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.buku-hidup .belakang{transform:rotateY(180deg);border-radius:16px 6px 6px 16px;padding:34px 62px 30px 34px;
  background-image:linear-gradient(270deg,transparent 46px,rgba(226,72,72,.38) 46px 48px,transparent 48px),repeating-linear-gradient(180deg,transparent 0 31px,rgba(8,119,232,.14) 31px 32px)}
/* bayangan lipatan: makin gelap saat halaman tegak lurus */
.buku-hidup .muka::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:var(--bayang,0);
  background:linear-gradient(90deg,rgba(12,30,58,.35),rgba(12,30,58,0) 55%)}
.buku-hidup .belakang::after{background:linear-gradient(270deg,rgba(12,30,58,.35),rgba(12,30,58,0) 55%)}
.buku-hidup .spiral{display:grid;position:absolute;left:50%;top:4%;bottom:4%;width:34px;margin-left:-17px;align-content:space-between;justify-items:center;
  transform:translateZ(40px);pointer-events:none;z-index:200;opacity:var(--buka,0)}
.buku-hidup .spiral i{display:block;width:34px;height:12px;border-radius:8px;border:3px solid #b8c1cf;border-top-color:#eef2f7;box-shadow:0 2px 3px rgba(0,0,0,.35)}

/* ---- mode 3D di HP: notes berspiral di atas, halaman dibalik ke atas ---- */
@media (max-width:820px){
  .buku-hidup .buku-lekat{padding-block:72px 16px}
  .buku-hidup .buku-panggung{perspective:1400px;perspective-origin:50% 0%}
  .buku-hidup .buku{--w:min(88vw,380px);--h:min(calc(var(--w) * 1.32),calc(100svh - 250px));width:var(--w);transform:none}
  .buku-hidup .dasar-kiri,.buku-hidup .belakang{display:none}
  .buku-hidup .dasar-kanan,.buku-hidup .lembar{left:0}
  .buku-hidup .lembar{transform-origin:50% 0;transform:rotateX(calc(var(--f,0) * 165deg))}
  .buku-hidup .lembar.lewat{visibility:hidden}
  .buku-hidup .muka{border-radius:16px;padding:42px 22px 22px 52px;background-position:0 0,0 30px}
  .buku-hidup .muka::after{background:linear-gradient(180deg,rgba(12,30,58,.4),rgba(12,30,58,0) 60%)}
  .buku-hidup .dasar-kanan{border-radius:16px;padding:42px 22px 22px 52px}
  .buku-hidup .spiral{left:6%;right:6%;top:-8px;bottom:auto;width:auto;height:22px;margin:0;grid-auto-flow:column;align-content:center;justify-content:space-between;opacity:1}
  .buku-hidup .spiral i{width:12px;height:26px}
  .hanya-hp{display:grid}
  .lanjut{display:none}
  .muka .no{font-size:3.2rem}
  .stiker{top:30px;right:16px}
  .muka p{font-size:.95rem}
  .karet{right:auto;left:0;right:0;top:auto;bottom:70px;width:auto;height:12px;background:linear-gradient(180deg,#d99a00,var(--kuning) 40%,#ffd65a 60%,#d99a00)}
}

/* ---------- karya ---------- */
.karya{max-width:var(--lebar);margin:0 auto;padding:140px clamp(16px,4vw,40px) 100px}
.game-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:64px}
.game{position:relative;display:grid;gap:10px;align-content:start;min-height:230px;padding:26px;border-radius:var(--radius);text-decoration:none;
  background:#fff;box-shadow:var(--bayang);overflow:hidden;isolation:isolate;transition:transform .5s var(--halus),color .4s}
.game::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--aksen);clip-path:circle(0% at 100% 100%);transition:clip-path .7s var(--halus)}
.game:hover{transform:translateY(-6px)}
.game:hover::after{clip-path:circle(150% at 100% 100%)}
.game:hover,.game:hover p,.game:hover .game-tag{color:#fff}
.game[style*=kuning]:hover,.game[style*=kuning]:hover p,.game[style*=kuning]:hover .game-tag{color:var(--tinta)}
.game-tag{font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--redup);transition:color .4s}
.game p{color:var(--redup);font-size:.95rem;transition:color .4s}
.game .panah{position:absolute;right:22px;bottom:18px;font-size:1.6rem;font-weight:800;transition:transform .5s var(--halus)}
.game:hover .panah{transform:translate(4px,-4px)}
.proyek-daftar{border-top:1px solid var(--garis)}
.proyek{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:20px;padding:28px 6px;border-bottom:1px solid var(--garis);
  transition:padding .4s var(--halus),background .4s}
.proyek:hover{padding-left:22px;background:rgba(255,255,255,.6)}
.proyek .no,.proyek .th{font-weight:700;color:var(--redup)}
.proyek h3{font-size:clamp(1.5rem,3vw,2.3rem);letter-spacing:-.04em}
.proyek p{color:var(--redup)}

/* ---------- kacigu ---------- */
.kacigu{position:relative;background:linear-gradient(180deg,var(--latar),#e9f2ff)}
.kacigu-lekat{max-width:var(--lebar);margin:0 auto;padding:120px clamp(16px,4vw,40px);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(24px,5vw,72px)}
.kacigu-teks{display:grid;gap:18px}
.kacigu-teks>p:not(.label){color:var(--redup);font-size:1.08rem;max-width:500px}
.ekspresi-pilih{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.ekspresi-pilih button{font:inherit;font-weight:700;font-size:.95rem;padding:11px 18px;border-radius:999px;border:0;cursor:pointer;
  background:#fff;color:var(--tinta);box-shadow:0 1px 0 var(--garis),0 6px 18px rgba(12,30,58,.08);transition:transform .3s var(--halus),background .3s,color .3s}
.ekspresi-pilih button:hover{transform:translateY(-2px)}
.ekspresi-pilih button[aria-pressed=true]{background:var(--biru);color:#fff}
.kacigu-wajah{position:relative;margin:0;justify-self:center;width:min(100%,420px);aspect-ratio:1}
.wajah-latar{position:absolute;inset:6%;border-radius:50%;background:conic-gradient(from var(--sudut,0deg),var(--kuning),var(--biru),var(--hijau),var(--kuning));opacity:.25;filter:blur(30px)}
.kacigu-wajah img{position:relative;width:100%;transition:transform .5s var(--halus),opacity .25s}
.kacigu-wajah img.ganti{transform:scale(.9) rotate(-6deg);opacity:0}
.kacigu-wajah .gelembung{top:2%;left:-6%;transition:opacity .25s}

/* ---------- kontak ---------- */
.kontak{position:relative;overflow:hidden;background:var(--tinta);color:#fff;text-align:center;padding:160px clamp(16px,4vw,40px)}
.orb{position:absolute;width:720px;height:720px;left:50%;top:50%;margin:-360px 0 0 -360px;border-radius:50%;
  background:radial-gradient(circle,rgba(8,119,232,.55),rgba(24,168,75,.25) 45%,transparent 70%);filter:blur(10px)}
.kontak-isi{position:relative;display:grid;gap:22px;justify-items:center;max-width:760px;margin:0 auto}
.kontak h2{font-size:clamp(2.4rem,6vw,4.6rem)}
.kontak p:not(.label){color:rgba(255,255,255,.75);font-size:1.15rem}
.kaki{display:grid;justify-items:center;gap:8px;padding:56px 16px 64px;color:var(--redup);text-align:center}
.kaki img{width:110px}
.kaki .kecil{font-size:.85rem}

/* ---------- animasi muncul saat discroll ---------- */
.muncul,.muncul-kiri{transition:opacity .9s var(--halus),transform .9s var(--halus)}
.js .muncul,.js .muncul-kiri{opacity:0}
.js .muncul{transform:translateY(40px)} .js .muncul-kiri{transform:translateX(-40px)}
.js .muncul.terlihat,.js .muncul-kiri.terlihat{opacity:1;transform:none}
/* tanpa JS: simbol filosofi tampil penuh (proses otomatis jadi kartu biasa) */
html:not(.js) .simbol .bag{opacity:1;filter:none}
.kartu-grid .muncul:nth-child(2),.game-grid .muncul:nth-child(2){transition-delay:.08s}
.kartu-grid .muncul:nth-child(3),.game-grid .muncul:nth-child(3){transition-delay:.16s}
.kartu-grid .muncul:nth-child(4),.game-grid .muncul:nth-child(4){transition-delay:.24s}
.hero .muncul{transition-delay:.45s}
.hero .aksi.muncul{transition-delay:.6s}

@keyframes melayang{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-18px) rotate(1deg)}}
@keyframes muncul-gelembung{from{opacity:0;transform:translateY(10px) scale(.9)}to{opacity:1;transform:none}}
@keyframes roda{0%{transform:translateY(0);opacity:1}100%{transform:translateY(14px);opacity:0}}
@keyframes pita{to{transform:translateX(-50%) skewX(var(--miring,0deg))}}

/* ---------- responsif ---------- */
@media (max-width:980px){
  .kartu-grid,.game-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:820px){
  .menu-btn{display:block}
  .nav ul{position:fixed;inset:64px 12px auto;flex-direction:column;align-items:stretch;gap:4px;padding:12px;border-radius:20px;background:#fff;box-shadow:var(--bayang);
    opacity:0;transform:translateY(-10px);pointer-events:none;transition:opacity .3s,transform .3s var(--halus)}
  .nav ul.buka{opacity:1;transform:none;pointer-events:auto}
  .nav ul a:not(.btn){padding:12px 16px}
  .nav ul .btn{justify-content:center;margin-top:6px}
  .hero{grid-template-columns:1fr;padding-top:104px;text-align:left}
  .hero-maskot{width:min(76%,340px);order:-1}
  .hero-maskot .gelembung{right:-8%}
  .isyarat{display:none}
  .filosofi{grid-template-columns:1fr;padding-top:100px}
  .cerita-lekat{position:sticky;top:64px;z-index:2}
  .cerita-visual{position:relative;top:0;height:200px;border-radius:24px}
  .simbol{width:42%}
  .cerita-angka{font-size:2rem;left:18px;bottom:12px}
  .langkah{min-height:60vh}
  .kacigu-lekat{grid-template-columns:1fr}
  .kacigu-wajah{width:min(80%,320px);order:-1}
  .proyek{grid-template-columns:44px 1fr auto;gap:12px}
}
@media (max-width:560px){
  body{font-size:16px}
  .kartu-grid,.game-grid{grid-template-columns:1fr}
}

/* ---------- hormati "kurangi gerakan" ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .js .muncul,.js .muncul-kiri,.js .langkah{opacity:1;transform:none}
  .js .judul-hero .baris>*{transform:none}
}
