:root{
  --bg:#0d0711;--bg2:#150b1b;--panel:#1b1023;--panel2:#23142d;
  --ink:#f6efe3;--soft:#c9bccb;--faint:#8f8097;
  --gold:#d9b25f;--gold2:#f2d796;--wine:#a3195b;--wine2:#6f0f3e;
  --line:rgba(217,178,95,.22);--line2:rgba(255,255,255,.08);
  --serif:'Playfair Display','Cormorant Garamond',Georgia,serif;
  --sans:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}a{color:inherit;text-decoration:none}
.wrap{width:min(1200px,100% - 40px);margin-inline:auto}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;margin:0}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:.74rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:600}
.eyebrow:before{content:"";width:36px;height:1px;background:var(--gold)}
.gold{background:linear-gradient(100deg,var(--gold2),var(--gold) 55%,#b98a35);-webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic}
/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;backdrop-filter:blur(14px);background:rgba(13,7,17,.72);border-bottom:1px solid var(--line2)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:1.25rem}
.brand i{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:700;color:#2a1604;background:linear-gradient(135deg,var(--gold2),var(--gold));box-shadow:0 0 0 3px rgba(217,178,95,.18)}
.brand small{white-space:nowrap;display:block;font-family:var(--sans);font-size:.6rem;letter-spacing:.3em;color:var(--faint);text-transform:uppercase;margin-top:-4px}
.menu{display:flex;gap:30px;font-size:.9rem;color:var(--soft)}.menu a:hover{color:var(--gold2)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;border-radius:999px;font-weight:700;font-size:.92rem;border:1px solid transparent;cursor:pointer;transition:.25s}
.btn-gold{background:linear-gradient(135deg,#4db2ff,#1e8bff 55%,#0a6df0);color:#fff;border-color:rgba(255,255,255,.18);box-shadow:0 10px 30px -8px rgba(30,139,255,.6);text-shadow:0 1px 1px rgba(0,40,110,.35)}
.btn-gold:hover{transform:translateY(-2px);background:linear-gradient(135deg,#66c0ff,#379aff 55%,#1a7bff);box-shadow:0 16px 36px -8px rgba(30,139,255,.8)}
.btn-line{border-color:var(--line);color:var(--ink);background:rgba(255,255,255,.03)}.btn-line:hover{border-color:var(--gold);color:var(--gold2)}
.nav .btn{padding:10px 20px;font-size:.82rem;white-space:nowrap}
/* hero */
.hero{position:relative;min-height:min(100vh,860px);padding:150px 0 90px;display:flex;align-items:center;
  background:radial-gradient(900px 600px at 85% 20%,rgba(163,25,91,.38),transparent 60%),radial-gradient(700px 500px at 5% 90%,rgba(217,178,95,.14),transparent 60%),linear-gradient(180deg,#110819,#0d0711)}
.hero:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 46px,rgba(255,255,255,.018) 46px 47px);pointer-events:none}
.hero .grid{position:relative;display:grid;grid-template-columns:1.02fr 1fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(2.2rem,4.5vw,3.9rem);margin:22px 0 24px}
.hero p.lead{font-size:1.14rem;color:var(--soft);max-width:560px}
.cta{display:flex;flex-wrap:wrap;gap:14px;margin:36px 0 44px}
.stats{display:flex;gap:40px;flex-wrap:wrap;padding-top:28px;border-top:1px solid var(--line2)}
.stats b{display:block;font-family:var(--serif);font-size:2.1rem;color:var(--gold2)}.stats span{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
/* device stack */
.stage{position:relative;height:560px}
.dev{position:absolute;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#000;box-shadow:0 40px 80px -20px rgba(0,0,0,.8),0 0 0 6px rgba(255,255,255,.03)}
.dev:before{content:"";display:block;height:22px;background:#1a1220;border-bottom:1px solid var(--line2);background-image:radial-gradient(circle,#e0556b 3px,transparent 4px),radial-gradient(circle,#e8b94a 3px,transparent 4px),radial-gradient(circle,#4cc38a 3px,transparent 4px);background-size:14px 22px;background-repeat:no-repeat;background-position:10px center,24px center,38px center}
.dev img{width:100%;height:calc(100% - 22px);object-fit:cover;object-position:top}
.d1{width:78%;height:350px;right:0;top:0;animation:fl 9s ease-in-out infinite}
.d2{width:62%;height:270px;left:0;top:210px;animation:fl 11s ease-in-out -3s infinite;z-index:2}
.d3{width:46%;height:220px;right:6%;bottom:-10px;animation:fl 10s ease-in-out -6s infinite;z-index:3}
@keyframes fl{50%{transform:translateY(-14px)}}
.orb{position:absolute;width:420px;height:420px;border-radius:50%;left:50%;top:50%;translate:-50% -50%;border:1px solid var(--line);box-shadow:inset 0 0 80px rgba(217,178,95,.08)}
/* sections */
section{padding:110px 0;position:relative}
.head{max-width:720px;margin-bottom:60px}.head h2{font-size:clamp(2rem,3.8vw,3.1rem);margin:16px 0 18px}.head p{color:var(--soft);font-size:1.06rem;margin:0}
.center{text-align:center;margin-inline:auto}.center .eyebrow{justify-content:center}
.band{background:linear-gradient(180deg,var(--bg2),var(--bg))}
.marquee{border-block:1px solid var(--line2);padding:20px 0;overflow:hidden;background:rgba(255,255,255,.015)}
.marquee div{display:flex;gap:60px;white-space:nowrap;animation:mq 38s linear infinite;width:max-content;font-family:var(--serif);font-size:1.15rem;color:var(--faint)}
.marquee span:before{content:"◆";color:var(--gold);margin-right:60px;font-size:.6rem;vertical-align:middle}
@keyframes mq{to{transform:translateX(-50%)}}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{padding:34px;border-radius:20px;background:linear-gradient(160deg,var(--panel2),var(--panel));border:1px solid var(--line2);transition:.3s;position:relative;overflow:hidden}
.card:hover{border-color:var(--line);transform:translateY(-6px)}
.card .ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:1.5rem;background:rgba(217,178,95,.1);border:1px solid var(--line);margin-bottom:22px}
.card h3{font-size:1.4rem;margin-bottom:10px}.card p{color:var(--soft);margin:0;font-size:.97rem}
/* portfolio */
.pf{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.pcard{display:block;border-radius:22px;overflow:hidden;background:var(--panel);border:1px solid var(--line2);transition:.35s;position:relative}
.pcard:hover{border-color:var(--gold);transform:translateY(-8px);box-shadow:0 30px 60px -20px rgba(0,0,0,.8),0 0 40px -10px rgba(217,178,95,.3)}
.pcard.big{grid-column:1/-1;display:grid;grid-template-columns:1.25fr 1fr}
.pimg{aspect-ratio:16/10;overflow:hidden;background:#000;border-bottom:1px solid var(--line2)}
.pcard.big .pimg{aspect-ratio:auto;min-height:380px;border:0;border-right:1px solid var(--line2)}
.pimg img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .8s}
.pcard:hover .pimg img{transform:scale(1.05)}
.pbody{padding:30px 32px 34px;display:flex;flex-direction:column;justify-content:center}
.tag{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:700}
.pbody h3{font-size:1.8rem;margin:8px 0 10px}.pbody p{color:var(--soft);margin:0 0 18px;font-size:.96rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.chip{padding:5px 13px;border-radius:999px;border:1px solid var(--line2);font-size:.76rem;color:var(--soft);background:rgba(255,255,255,.03)}
.more{color:var(--gold2);font-weight:700;font-size:.9rem}.more:after{content:" →";transition:.2s}.pcard:hover .more:after{margin-left:6px}
/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;counter-reset:s}
.step{padding:30px 26px;border-top:2px solid var(--gold);background:linear-gradient(180deg,rgba(217,178,95,.07),transparent);border-radius:0 0 16px 16px}
.step:before{counter-increment:s;content:"0" counter(s);font-family:var(--serif);font-size:2.6rem;color:var(--gold);display:block;line-height:1;margin-bottom:14px}
.step h3{font-size:1.2rem;margin-bottom:8px}.step p{margin:0;color:var(--soft);font-size:.93rem}
.why{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.ticks{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:16px}
.ticks li{display:flex;gap:14px;color:var(--soft)}.ticks li:before{content:"✦";color:var(--gold);flex:none}
.ticks b{color:var(--ink)}
.quote{padding:48px;border-radius:24px;border:1px solid var(--line);background:radial-gradient(500px 300px at 100% 0,rgba(163,25,91,.3),transparent),var(--panel);font-family:var(--serif);font-size:1.5rem;line-height:1.5}
.quote small{display:block;margin-top:20px;font-family:var(--sans);font-size:.85rem;color:var(--faint);letter-spacing:.1em}
.final{text-align:center;background:radial-gradient(700px 400px at 50% 100%,rgba(163,25,91,.45),transparent),var(--bg2);border-top:1px solid var(--line)}
.final h2{font-size:clamp(2.2rem,4.6vw,3.8rem);max-width:860px;margin:18px auto 22px}.final p{color:var(--soft);max-width:600px;margin:0 auto 38px;font-size:1.1rem}
.faq{max-width:820px;margin-inline:auto}
details{border-bottom:1px solid var(--line2);padding:22px 4px}summary{cursor:pointer;font-family:var(--serif);font-size:1.25rem;list-style:none;display:flex;justify-content:space-between;gap:20px}
summary::after{content:"+";color:var(--gold);font-size:1.6rem;line-height:1}details[open] summary::after{content:"–"}
details p{color:var(--soft);margin:14px 0 0}
footer{padding:50px 0;border-top:1px solid var(--line2);color:var(--faint);font-size:.88rem}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.reveal{opacity:0;transform:translateY(34px);transition:1s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}
/* sub pages */
.sh{padding:140px 0 70px;background:radial-gradient(800px 500px at 90% 0,rgba(163,25,91,.35),transparent 60%),linear-gradient(180deg,#120819,var(--bg))}
.sh .grid{display:grid;grid-template-columns:1fr 1.15fr;gap:54px;align-items:center}
.sh h1{font-size:clamp(2.3rem,4.6vw,4rem);margin:18px 0 20px}.sh .lead{color:var(--soft);font-size:1.1rem}
.crumb{font-size:.85rem;color:var(--faint)}.crumb a:hover{color:var(--gold2)}
.shot{border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:0 50px 90px -30px rgba(0,0,0,.9),0 0 60px -20px rgba(217,178,95,.25);background:#000}
.shot:before{content:"";display:block;height:26px;background:#1a1220;background-image:radial-gradient(circle,#e0556b 3.5px,transparent 4.5px),radial-gradient(circle,#e8b94a 3.5px,transparent 4.5px),radial-gradient(circle,#4cc38a 3.5px,transparent 4.5px);background-size:16px 26px;background-repeat:no-repeat;background-position:12px center,28px center,44px center}
.gal{display:grid;gap:28px}.gal.two{grid-template-columns:1fr 1fr}
.gal figure{margin:0}.gal figcaption{margin-top:12px;color:var(--faint);font-size:.88rem;text-align:center}
.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.feat .card{padding:28px}.feat .card h3{font-size:1.2rem}
.flow{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:20px}
.flow span{padding:10px 18px;border-radius:12px;border:1px solid var(--line);background:rgba(217,178,95,.07);font-weight:600;font-size:.9rem}.flow em{color:var(--gold);font-style:normal}
.manual{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.manual div{padding:22px 26px;border-radius:16px;border:1px solid var(--line2);background:var(--panel)}
.manual b{display:block;font-family:var(--serif);font-size:1.15rem;color:var(--gold2);margin-bottom:6px}.manual p{margin:0;color:var(--soft);font-size:.93rem}
.other{display:flex;flex-wrap:wrap;gap:12px}.other a{padding:10px 20px;border-radius:999px;border:1px solid var(--line2);color:var(--soft);font-size:.9rem}.other a:hover{border-color:var(--gold);color:var(--gold2)}
.wa{position:fixed;right:22px;bottom:22px;z-index:60;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;font-size:1.6rem;box-shadow:0 10px 30px rgba(37,211,102,.45)}
@media(max-width:960px){
  .menu{display:none}.hero .grid,.sh .grid,.why,.pcard.big{grid-template-columns:1fr}
  .stage{height:430px}.d1{height:260px}.d2{height:200px;top:160px}.d3{height:160px}
  .cards,.feat{grid-template-columns:1fr}.pf,.gal.two,.manual{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}
  .pcard.big .pimg{min-height:240px;border-right:0;border-bottom:1px solid var(--line2)}
  section{padding:76px 0}.hero{padding-top:120px}
}
@media(max-width:560px){.steps{grid-template-columns:1fr}.stats{gap:24px}.quote{padding:30px;font-size:1.2rem}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

@media(max-width:560px){.brand small{display:none}.nav .btn{padding:9px 14px;font-size:.76rem}.brand{font-size:1.05rem}}

.stats{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:28px}.stats span{font-size:.68rem}
.navr{display:flex;align-items:center;gap:14px}
.links{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:980px;margin-inline:auto}
.lk{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 26px;border-radius:16px;border:1px solid var(--line2);background:var(--panel);transition:.25s}
.lk:hover{border-color:var(--gold);transform:translateY(-3px)}
.lk b{display:block;font-family:var(--serif);font-size:1.2rem}.lk small{color:var(--faint);font-size:.8rem}
.lk em{font-style:normal;color:var(--gold2);font-weight:600;font-size:.9rem;white-space:nowrap}
.site{margin:0 0 6px;color:var(--soft)}.site a{color:var(--gold2);font-weight:600;border-bottom:1px solid var(--line)}
@media(max-width:960px){.links{grid-template-columns:1fr}.lk{flex-direction:column;align-items:flex-start;gap:6px}}
.lang{display:flex;gap:8px;align-items:center}
.lang a{display:block;width:34px;height:23px;border-radius:5px;overflow:hidden;border:1px solid var(--line2);opacity:.55;transition:.2s}
.lang a svg{display:block;width:100%;height:100%}
.lang a:hover{opacity:1}.lang a.on{opacity:1;border-color:var(--gold);box-shadow:0 0 0 2px rgba(217,178,95,.35)}
/* 3D coin logo — pendekatan koin dari voting2 */
.coin{--s:46px;--t:calc(var(--s) * .1);position:relative;display:block;width:var(--s);height:var(--s);flex:none;perspective:calc(var(--s) * 6)}
.coin-fl{position:absolute;inset:0;transform-style:preserve-3d;animation:drift 7s ease-in-out infinite}
.coin-in{position:absolute;inset:0;transform-style:preserve-3d;animation:spin 10s cubic-bezier(.55,0,.35,1) infinite}
.coin .ed{position:absolute;inset:0;border-radius:50%;transform:translateZ(calc(var(--t) * var(--z)));background:linear-gradient(90deg,#6f4c0e 0%,#c9962c 18%,#f7dc84 32%,#b88420 50%,#f2d06f 68%,#9b6c16 84%,#5e400b 100%);box-shadow:inset 0 0 0 1px rgba(60,38,5,.55)}
.coin .cf{position:absolute;inset:0;border-radius:50%;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#2a0f1e;transform:translateZ(calc(var(--t) / 2 + .5px))}
.coin .cb{transform:rotateY(180deg) translateZ(calc(var(--t) / 2 + .5px))}
.coin .cf img{width:100%;height:100%;display:block;object-fit:cover;user-select:none}
.coin .cf:before{content:"";position:absolute;inset:0;border-radius:50%;z-index:2;background:conic-gradient(from 200deg,#7a5410,#f8e08e,#b8871e,#fff1b8,#9a6a14,#e9c763,#7a5410);-webkit-mask:radial-gradient(circle closest-side,transparent 0 calc(100% - var(--s) * .05),#000 calc(100% - var(--s) * .045));mask:radial-gradient(circle closest-side,transparent 0 calc(100% - var(--s) * .05),#000 calc(100% - var(--s) * .045))}
.coin .cf:after{content:"";position:absolute;inset:0;border-radius:50%;z-index:3;box-shadow:inset 0 calc(var(--s) * .02) calc(var(--s) * .05) rgba(255,244,200,.35),inset 0 calc(var(--s) * -.03) calc(var(--s) * .07) rgba(0,0,0,.45)}
.coin .shn{position:absolute;inset:0;z-index:4;border-radius:50%;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.45) 48%,rgba(255,240,190,.2) 53%,transparent 62%);background-size:300% 300%;mix-blend-mode:screen;animation:shine 10s ease-in-out infinite}
/* diam menghadap depan (sedikit miring), sesekali satu putaran penuh */
@keyframes spin{0%,78%{transform:rotateY(0) rotateX(6deg)}90%{transform:rotateY(380deg) rotateX(-4deg)}94%{transform:rotateY(354deg) rotateX(2deg)}100%{transform:rotateY(360deg) rotateX(6deg)}}
@keyframes drift{0%,100%{transform:rotateX(5deg) rotateZ(-2.5deg)}50%{transform:rotateX(-4deg) rotateZ(2.5deg)}}
@keyframes shine{0%,86%{background-position:100% 100%}96%,100%{background-position:0 0}}
.brand{gap:14px}
@media(max-width:560px){.coin{--s:40px}.brand{gap:10px}.brand>span:last-child{font-size:1rem;line-height:1.1}.nav .wrap{height:62px}.lang a{width:30px;height:20px}.navr{gap:10px}.nav .btn{display:inline-flex!important;padding:8px 12px;font-size:.72rem}}
@media(prefers-reduced-motion:reduce){.coin-fl,.coin-in,.coin .shn{animation:none}}

/* kilau merambat dari koin ke tulisan nama, mengikuti siklus 10 detik koin */
.bn{display:block;font-style:normal;background:linear-gradient(105deg,var(--ink) 38%,#fff 47%,#f2d796 52%,var(--ink) 62%);background-size:320% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:nameshine 10s ease-in-out infinite}
@keyframes nameshine{0%,90%{background-position:100% 0}100%{background-position:0 0}}
@media(prefers-reduced-motion:reduce){.bn{animation:none;background-position:100% 0}}
.lk em.soon{color:var(--faint);font-weight:500;font-style:italic}
.devb{display:inline-block;align-self:flex-start;padding:4px 12px;margin-bottom:8px;border-radius:999px;border:1px solid var(--gold);background:rgba(217,178,95,.12);color:var(--gold2);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.ct a{color:var(--gold2);font-weight:600}
img{height:auto}
picture{display:block}picture img{width:100%}
@media(max-width:700px){.shot.ph{max-width:340px;margin-inline:auto;border-radius:28px}.shot.ph:before{display:none}.gal figure{margin-inline:auto;max-width:100%}.gal figcaption{padding-inline:6px}}

/* ---- layar HP: proporsi gambar ---- */
html{overflow-x:hidden}
.stage-m{display:none}
.pimg picture{display:block;width:100%;height:100%}
@media(max-width:700px){
  .stage{display:none}
  .stage-m{display:flex;justify-content:center;align-items:flex-end;height:330px;margin-top:6px}
  .pm{width:34%;aspect-ratio:390/844;border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:0 20px 40px -12px rgba(0,0,0,.8);background:#000;flex:none}
  .pm img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
  .pm1{transform:rotate(-5deg) translateY(12px)}.pm3{transform:rotate(5deg) translateY(12px)}
  .pm2{width:40%;z-index:2;margin:0 -5%}
  .pimg,.pcard.big .pimg{aspect-ratio:4/5;min-height:0;max-height:430px}
  .pimg img{object-position:top center}
}

/* ---- galeri tampilan: proporsional di desktop ---- */
@media(min-width:701px){
  .gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}
  .gal.g1{grid-template-columns:minmax(0,760px);justify-content:center}
  .gal .shot img{aspect-ratio:16/11;object-fit:cover;object-position:top center}
}
