/* CraftVal sosial: level, profil bergaya Discord (bingkai, efek, tema), kawan. Semua kosmetik. */
@property --a { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
@keyframes cva-spin { to { --a: 360deg; } }
@keyframes fx-up { from { background-position: 0 0, 0 0, 0 0; } to { background-position: 0 -120px, 0 -90px, 0 -150px; } }
@keyframes fx-down { from { background-position: 0 0, 0 0, 0 0; } to { background-position: 0 120px, 0 90px, 0 150px; } }
@keyframes fx-twinkle { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
@keyframes fx-wave { from { background-position: 0 0; } to { background-position: 400px 0; } }

/* ---- avatar + bingkai ---- */
.cva { position: relative; display: inline-block; width: var(--s, 64px); height: var(--s, 64px); flex: none; vertical-align: middle; border-radius: 14%; background: var(--slot); }
.cva img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 14%; image-rendering: auto; z-index: 1; }
.cva-fr { position: absolute; inset: calc(var(--s, 64px) * -.09); border-radius: calc(14% + var(--s, 64px) * .09); padding: calc(var(--s, 64px) * .075); z-index: 3; pointer-events: none;
  background: conic-gradient(from var(--a), var(--c1, #999), var(--c2, #555), var(--c1, #999));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }
.cva .cva-fx { position: absolute; inset: 0; border-radius: 14%; overflow: hidden; z-index: 2; pointer-events: none; }

/* ---- efek (di avatar dan di banner) ---- */
.cva-fx { background-repeat: repeat; }
@media (prefers-reduced-motion: reduce) { .cva-fx, .cva-fr { animation: none !important; } }

/* ---- chip level ---- */
.lvchip { display: inline-block; font-family: var(--font-pix); font-size: .62rem; line-height: 1; padding: 4px 6px; border: 2px solid var(--edge); background: var(--gold); color: #2a1d00; vertical-align: middle; }

/* ---- kartu profil ---- */
.pcard { --acc: #5aa02c; background: var(--panel); border: 3px solid var(--edge); box-shadow: inset 3px 3px 0 var(--hi), inset -3px -3px 0 var(--lo); margin-bottom: 16px; overflow: hidden; position: relative; }
.pban { position: relative; height: 150px; overflow: hidden; background-color: var(--acc); background-image: var(--tile); background-size: 64px 64px; image-rendering: pixelated; }
.pban::before { content: ''; position: absolute; inset: 0; background: color-mix(in srgb, var(--acc) 38%, transparent); z-index: 0; }
.pban img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; image-rendering: auto; }
.pban .cva-fx { position: absolute; inset: 0; z-index: 2; border-radius: 0; }
.phead { display: flex; gap: 14px; align-items: flex-start; flex-wrap: wrap; padding: 0 16px; margin-top: -44px; position: relative; z-index: 4; }
.pav { padding: 5px; background: var(--panel); border: 3px solid var(--edge); border-radius: 18%; }
.pid { flex: 1; min-width: 180px; padding: 52px 0 4px; }
.pid h1 { margin: 0; font-size: 1.15rem; word-break: break-word; }
.ptitle { display: inline-block; margin-top: 4px; font-family: var(--font-pix); font-size: .66rem; color: var(--acc); border: 2px solid var(--acc); padding: 3px 7px; }
.ptitle:empty { display: none; }
.pstat { margin-top: 5px; font-size: .8rem; color: var(--muted); display: flex; align-items: center; gap: 6px; }
.pact { display: flex; gap: 8px; flex-wrap: wrap; padding: 52px 0 6px; }
.chip.tem { background: var(--grass); color: #fff; border-color: var(--grass2); }
.pstatus { margin: 12px 16px 0; padding: 8px 12px; background: var(--panel2); border-left: 4px solid var(--acc); font-style: italic; }
.pstatus:empty { display: none; }
.pbio { margin: 10px 16px 0; white-space: normal; word-break: break-word; }
.pbio:empty { display: none; }
.pcount { display: flex; flex-wrap: wrap; gap: 6px 22px; padding: 14px 16px 6px; }
.pcount > * { text-align: center; text-decoration: none; color: inherit; min-width: 64px; }
.pcount b { display: block; font-family: var(--font-pix); font-size: 1rem; }
.pcount span { font-size: .72rem; color: var(--muted); }
.plv { padding: 8px 16px 14px; }
.xpbar { height: 14px; background: var(--slot); border: 2px solid var(--edge); margin-top: 6px; overflow: hidden; }
.xpbar.big { height: 20px; }
.xpbar i { display: block; height: 100%; background: var(--acc, var(--grass)); transition: width .6s; }
.pins { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 16px 16px; }
.pin { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; background: var(--panel2); border: 2px solid var(--edge); font-size: .76rem; font-weight: 700; }
.pin img { width: 20px; height: 20px; image-rendering: pixelated; }
.pcard.th-nether { --tint: #5a1a1a; } .pcard.th-end { --tint: #2a1c40; }

/* ---- lencana ---- */
.bgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.bdg { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 12px 8px; background: var(--panel2); border: 2px solid var(--edge); }
.bdg img { width: 36px; height: 36px; image-rendering: pixelated; }
.bdg small { font-size: .7rem; color: var(--muted); }
.bdg.x { opacity: .4; filter: grayscale(1); }

/* ---- editor ---- */
.edgrid { display: grid; grid-template-columns: minmax(280px, 380px) 1fr; gap: 16px; align-items: start; }
.edprev { position: sticky; top: 76px; }
.edform .panel { margin-bottom: 14px; }
.opts { display: flex; flex-wrap: wrap; gap: 8px; }
.opt { font-family: var(--font-pix); font-size: .66rem; padding: 8px 10px; background: var(--panel2); border: 3px solid var(--edge); color: var(--ink); cursor: pointer; display: inline-flex; flex-direction: column; align-items: center; gap: 2px; }
.opt.on { background: var(--grass); color: #fff; border-color: var(--grass2); }
.opt.lock { opacity: .45; cursor: not-allowed; }
.opt small { font-size: .56rem; opacity: .85; }
.swatches { display: flex; flex-wrap: wrap; gap: 10px; }
.sw { width: 34px; height: 34px; border: 3px solid var(--edge); cursor: pointer; }
.sw.on { outline: 3px solid var(--ink); outline-offset: 2px; }
@media (max-width: 560px) { .pid { padding-top: 8px; flex-basis: 100%; } .pact { padding-top: 0; } .phead { margin-top: -50px; } }
@media (max-width: 800px) { .edgrid { grid-template-columns: 1fr; } .edprev { position: static; } }

/* ---- kawan ---- */
.tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.tab { font-family: var(--font-pix); font-size: .72rem; padding: 8px 12px; border: 3px solid var(--edge); background: var(--panel2); color: var(--ink); text-decoration: none; }
.tab.on { background: var(--grass); color: #fff; border-color: var(--grass2); }
.plist .pl { display: flex; align-items: center; gap: 10px; padding: 10px 4px; border-bottom: 2px solid var(--slot); }
.plist .pl:last-child { border: 0; }
.plink { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; text-decoration: none; color: inherit; }
.plink small { display: block; color: var(--muted); font-size: .72rem; }

/* ---- level ---- */
.lvhero .lvbig { width: 96px; height: 96px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--gold); border: 4px solid var(--edge); color: #2a1d00; }
.lvbig span { font-family: var(--font-pix); font-size: .6rem; } .lvbig b { font-family: var(--font-pix); font-size: 2rem; line-height: 1; }
.lvlist { display: flex; flex-direction: column; gap: 6px; }
.lvrow { display: flex; gap: 12px; padding: 8px 10px; background: var(--panel2); border-left: 5px solid var(--slot-edge); align-items: baseline; }
.lvrow b { font-family: var(--font-pix); font-size: .72rem; min-width: 52px; }
.lvrow.got { border-left-color: var(--grass); } .lvrow.got b { color: var(--grass2); }
.rules h2 { margin-top: 20px; } .rules .rl { margin: 4px 0; padding-left: 14px; position: relative; } .rules .rl::before { content: ''; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; background: var(--grass); }
.agree { margin-top: 20px; padding-top: 14px; border-top: 3px dashed var(--slot-edge); }
.hdr-lv { font-family: var(--font-pix); }


/* ================= KOMUNITAS: hub, galeri, aktivitas, rekap ================= */
.hubgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; margin-bottom: 18px; }
.hub { display: flex; align-items: center; gap: 14px; padding: 16px; border: 1px solid color-mix(in srgb, var(--ink) 14%, transparent); border-radius: 16px; background: var(--panel); text-decoration: none; color: var(--ink); position: relative; transition: transform .12s, box-shadow .12s; box-shadow: 0 2px 0 color-mix(in srgb, var(--ink) 10%, transparent); }
.hub:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.12); }
.hub img { width: 40px; height: 40px; image-rendering: pixelated; flex: none; } .hub span:not(.badge) { display: flex; flex-direction: column; min-width: 0; } .hub b { font-weight: 800; } .hub small { color: var(--muted); font-size: .78rem; }
.hub .badge { position: absolute; top: 10px; right: 12px; border-radius: 999px; }
.feedlist { display: flex; flex-direction: column; } .fe { display: flex; align-items: center; gap: 12px; padding: 10px 2px; border-bottom: 1px solid color-mix(in srgb, var(--ink) 10%, transparent); } .fe:last-child { border: 0; }
.fe .fi { width: 28px; height: 28px; image-rendering: pixelated; flex: none; } .fe > span { flex: 1; min-width: 0; } .fe small { color: var(--muted); white-space: nowrap; } .fe a { color: inherit; }
.ggrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; margin-bottom: 14px; } .ggrid.one { grid-template-columns: minmax(250px, 420px); }
.gcard-post { border: 1px solid color-mix(in srgb, var(--ink) 14%, transparent); border-radius: 16px; overflow: hidden; background: var(--panel); box-shadow: 0 2px 0 color-mix(in srgb, var(--ink) 10%, transparent); display: flex; flex-direction: column; }
.gimg { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: color-mix(in srgb, var(--ink) 8%, var(--panel)); } .gimg img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s; } .gimg:hover img { transform: scale(1.04); }
.gbody { padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 6px; }
.gauth .plink { gap: 8px; } .gauth small { display: block; color: var(--muted); font-size: .7rem; } .gcap { margin: 0; font-size: .88rem; word-break: break-word; }
.gact { display: flex; align-items: center; gap: 6px; margin-top: 2px; }
.gbtn { display: inline-flex; align-items: center; gap: 5px; font-family: var(--font); font-weight: 700; font-size: .78rem; padding: 5px 11px; border: 1px solid color-mix(in srgb, var(--ink) 14%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--ink) 5%, var(--panel)); color: var(--ink); cursor: pointer; text-decoration: none; }
.gbtn img { width: 16px; height: 16px; image-rendering: pixelated; } .gbtn.on { background: color-mix(in srgb, var(--gold) 45%, var(--panel)); border-color: var(--gold); } .gbtn.red { color: var(--red); }
.gtop { margin-bottom: 16px; } .gtopt { display: flex; align-items: center; gap: 8px; font-family: var(--font-pix); font-size: .8rem; margin-bottom: 8px; } .gtopt img { width: 22px; height: 22px; image-rendering: pixelated; }
.gone { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, 1fr); gap: 16px; align-items: start; } .gone .gonei img { width: 100%; border-radius: 16px; display: block; border: 1px solid color-mix(in srgb, var(--ink) 14%, transparent); }
.gone .gcard-post .gimg { display: none; }
.gcm { display: flex; flex-direction: column; gap: 10px; margin: 8px 0 12px; max-height: 360px; overflow: auto; } .gc { display: flex; gap: 10px; align-items: flex-start; } .gc small { color: var(--muted); } .gc > div { flex: 1; min-width: 0; word-break: break-word; }
.rekap .rkhero { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 14px 16px 6px; } .rkhero div { text-align: center; background: color-mix(in srgb, var(--acc) 14%, var(--panel)); border-radius: 14px; padding: 10px 4px; } .rkhero span { display: block; font-size: .7rem; color: var(--muted); } .rkhero b { font-family: var(--font-pix); font-size: 1.05rem; }
.rkgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; padding: 8px 16px 12px; } .rkc { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 12px 6px; border-radius: 14px; background: color-mix(in srgb, var(--ink) 5%, var(--panel)); text-align: center; } .rkc img { width: 30px; height: 30px; image-rendering: pixelated; } .rkc b { font-family: var(--font-pix); font-size: 1.05rem; } .rkc span { font-size: .72rem; color: var(--muted); }
.rkx { padding: 0 16px 16px; } .rkx h3 { margin: 6px 0; } .rkb { display: grid; grid-template-columns: 120px 1fr 56px; gap: 8px; align-items: center; margin-bottom: 6px; font-size: .82rem; } .rkb b { text-align: right; font-family: var(--font-pix); font-size: .72rem; }
@media (max-width: 760px) { .gone { grid-template-columns: 1fr; } .ggrid { grid-template-columns: 1fr 1fr; gap: 10px; } .rkb { grid-template-columns: 90px 1fr 48px; } }
@media (max-width: 460px) { .ggrid { grid-template-columns: 1fr; } }
.gonec h3 { margin-top: 18px; }

/* ---- kosmetik premium ---- */
.opt.prem small { color: #ffd66b; }
.cva video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; pointer-events: none; }
.pban video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; pointer-events: none; }
.gemb video{width:100%;height:100%;object-fit:cover}

/* ---- editor kosmetik v2 ---- */
.tabs2 { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.tabs2 button, .filt button { font-family: var(--font-pix); font-size: .66rem; padding: 8px 11px; background: var(--panel2); border: 3px solid var(--edge); color: var(--ink); cursor: pointer; }
.tabs2 button.on, .filt button.on { background: var(--grass); color: #fff; border-color: var(--grass2); }
.filt { display: flex; gap: 6px; margin-bottom: 10px; flex-wrap: wrap; }
.filt button { font-size: .6rem; padding: 6px 9px; }
.itg { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 10px; }
.itg.wide { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.it { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 6px; padding: 10px 6px 8px; background: var(--panel2); border: 3px solid var(--edge); color: var(--ink); cursor: pointer; text-align: center; position: relative; min-height: 124px; transition: transform .1s; }
.it:hover { transform: translateY(-2px); border-color: var(--acc, var(--grass)); }
.it b { font-size: .7rem; line-height: 1.15; word-break: break-word; }
.it small { font-size: .62rem; color: var(--muted); font-family: var(--font-pix); }
.it.on { border-color: var(--grass2); background: color-mix(in srgb, var(--grass) 28%, var(--panel2)); }
.it.on small { color: var(--ink); }
.it.try { border-style: dashed; border-color: #e3a21a; }
.it.lock .itv { filter: grayscale(.55) brightness(.8); }
.it.lock small { color: #c0392b; }
.it.prem { border-color: #c79bff; }
.it.prem small { color: #b86bff; }
.it.prem::after { content: 'PREMIUM'; position: absolute; top: -9px; right: -4px; font-family: var(--font-pix); font-size: .5rem; background: linear-gradient(90deg, #ffd23f, #ff9a3c); color: #3a2400; padding: 2px 5px; border: 2px solid #000; }
.itv { min-height: 58px; display: flex; align-items: center; justify-content: center; width: 100%; }
.fxb { position: relative; display: block; width: 78px; height: 54px; overflow: hidden; background: linear-gradient(160deg, #2b3a55, #121826); border: 2px solid #000; }
.fxb .cva-fx { position: absolute; inset: 0; }
.thb { display: block; width: 78px; height: 54px; background-size: 27px 27px; image-rendering: pixelated; border: 2px solid #000; }
.cfb.pcard.cf { margin: 0; width: 78px; height: 50px; border-width: 8px; border-image-width: 8px; background: var(--panel); }
.cfb.pcard.cf::before { display: none; }
.cfb.pcard:not(.cf) { display: block; width: 78px; height: 50px; border: 2px dashed var(--edge); box-shadow: none; }
.itv .cva { margin: 6px; }
.itv .tt { margin: 0; font-size: .6rem; }
.pvnote { margin: 8px 0; padding: 8px 10px; font-size: .78rem; border-left: 4px solid #e3a21a; background: var(--panel2); }
.pvnote.lock { border-color: #c0392b; }
.nextun { margin-top: 10px; font-size: .8rem; }
.h3s { margin: 14px 0 8px; font-family: var(--font-pix); font-size: .72rem; }
.ncols { display: grid; grid-template-columns: repeat(auto-fill, minmax(34px, 1fr)); gap: 8px; max-width: 520px; }
.nc { position: relative; width: 34px; height: 34px; padding: 0; border-radius: 50%; border: 3px solid var(--edge); background: var(--panel2); cursor: pointer; display: grid; place-items: center; }
.nc .ncs { width: 100%; height: 100%; border-radius: 50%; background: var(--c); display: block; }
.nc.on { outline: 3px solid var(--grass2); outline-offset: 2px; }
.nc.lock .ncs { opacity: .45; }
.nc .ncl { position: absolute; font-style: normal; font-family: var(--font-pix); font-size: .5rem; color: #fff; text-shadow: 1px 1px 0 #000; }
.nc .ncx { font-family: var(--font-pix); font-size: .7rem; }
.nc.try { outline: 3px dashed #e3a21a; outline-offset: 2px; }
#fCol { width: 44px; height: 34px; padding: 0; border: 3px solid var(--edge); background: var(--panel2); }
.sw.try { outline: 3px dashed #e3a21a; }
@media (max-width: 900px) { .edgrid { grid-template-columns: 1fr; } .edprev { position: static; } .itg { grid-template-columns: repeat(auto-fill, minmax(98px, 1fr)); } }

/* ---- misi ---- */
.msi { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding: 10px 6px; border-bottom: 2px solid rgba(0,0,0,.15); }
.msi.rdy { background: color-mix(in srgb, var(--gold, #f2b705) 18%, transparent); }
.msi.got { opacity: .6; }
.msic { width: 40px; height: 40px; display: grid; place-items: center; background: var(--slot); border: 3px solid; border-color: var(--slot-edge) #fff #fff var(--slot-edge); flex: none; }
.msic img { width: 28px; height: 28px; image-rendering: pixelated; }
.mst { flex: 1; min-width: 200px; }
.chip.xpc { background: #5b3fd0; color: #fff; font-size: .62rem; }

.savebar { position: fixed; left: 50%; transform: translateX(-50%); bottom: 14px; z-index: 80; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; justify-content: center; max-width: calc(100vw - 24px); background: var(--panel); border: 3px solid #000; padding: 8px 12px; box-shadow: 0 4px 0 rgba(0,0,0,.5), 0 0 0 3px rgba(255,255,255,.12) inset; font-size: .8rem; }
.savebar[hidden] { display: none; }
.savebar .btn[disabled] { opacity: .5; cursor: not-allowed; }

.msi .cara{display:block;margin-top:4px;color:var(--gold,#f2b705);font-size:12px}.msi .cara svg{width:12px;height:12px;vertical-align:-2px}
