/* =============================================
   DitzLoveMoney — style.css
   ============================================= */

:root {
  --gold:       #c9a84c;
  --gold-light: #e8c97a;
  --gold-pale:  #f5e6b8;
  --black:      #0a0a0a;
  --text:       #e8d9b0;
  --text-muted: #7a6a45;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  min-height: 100vh;
  background: var(--black);
  font-family: 'Montserrat', sans-serif;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: 40px 20px 60px;
  position: relative;
  overflow-x: hidden;
}

/* ===== BACKGROUND ===== */
.bg-base {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 80% 60% at 20% 10%, rgba(201,168,76,0.13) 0%, transparent 60%),
    radial-gradient(ellipse 60% 80% at 80% 90%, rgba(201,168,76,0.10) 0%, transparent 55%),
    #0a0a0a;
}
.bg-grid {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(201,168,76,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,0.04) 1px, transparent 1px);
  background-size: 60px 60px;
}
.bg-orbs { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.orb {
  position: absolute; border-radius: 50%;
  filter: blur(60px); opacity: 0.18;
  animation: drift 14s ease-in-out infinite alternate;
}
.orb-1 { width:320px;height:320px;background:radial-gradient(circle,#c9a84c,transparent);top:-80px;left:-60px;animation-duration:16s; }
.orb-2 { width:240px;height:240px;background:radial-gradient(circle,#e8c97a,transparent);top:30%;right:-80px;animation-duration:12s;animation-delay:-5s; }
.orb-3 { width:280px;height:280px;background:radial-gradient(circle,#c9a84c,transparent);bottom:-60px;left:20%;animation-duration:18s;animation-delay:-8s; }
.bg-noise {
  position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: 0.6;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
  background-size: 180px;
}
.bg-blur-overlay {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  backdrop-filter: blur(0px); -webkit-backdrop-filter: blur(0px);
  transition: backdrop-filter 0.5s ease;
}
body.blur-on .bg-blur-overlay { backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }

.corner { position:fixed; width:80px; height:80px; pointer-events:none; z-index:0; opacity:0.15; }
.corner-tl { top:16px;left:16px;border-top:1px solid var(--gold);border-left:1px solid var(--gold); }
.corner-tr { top:16px;right:16px;border-top:1px solid var(--gold);border-right:1px solid var(--gold); }
.corner-bl { bottom:16px;left:16px;border-bottom:1px solid var(--gold);border-left:1px solid var(--gold); }
.corner-br { bottom:16px;right:16px;border-bottom:1px solid var(--gold);border-right:1px solid var(--gold); }

/* ===== CONTAINER ===== */
.container { width:100%; max-width:480px; position:relative; z-index:1; }

/* ===== PROFILE ===== */
.profile {
  display: flex; flex-direction: column;
  align-items: center; margin-bottom: 36px;
  animation: fadeDown 0.8s ease both;
}

/* Avatar: spinning conic ring + glow pulses */
.avatar-wrap {
  position: relative;
  width: 120px; height: 120px;
  margin-bottom: 18px;
  display: flex; align-items: center; justify-content: center;
}

/* Spinning conic ring (outermost) */
.avatar-ring-spin {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  background: conic-gradient(
    var(--gold-pale) 0%,
    var(--gold-light) 15%,
    var(--gold) 30%,
    #7a4e18 45%,
    var(--gold) 55%,
    var(--gold-light) 70%,
    var(--gold-pale) 85%,
    var(--gold-light) 100%
  );
  animation: spinRing 4s linear infinite;
  filter: blur(0.5px);
}

/* Glowing halo layer (slower, pulsing) */
.avatar-ring-glow {
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  background: transparent;
  box-shadow:
    0 0 12px 4px rgba(201,168,76,0.55),
    0 0 28px 8px rgba(201,168,76,0.30),
    0 0 55px 14px rgba(201,168,76,0.15);
  animation: pulseGlow 2.4s ease-in-out infinite alternate;
}

/* Mask ring — dark circle to show only border */
.avatar-ring-mask {
  position: absolute;
  inset: 2px;
  border-radius: 50%;
  background: var(--black);
  z-index: 1;
}

/* Extra inner bright ring */
.avatar-ring-inner {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1.5px solid rgba(245,230,184,0.45);
  z-index: 2;
  animation: pulseGlow 3s ease-in-out infinite alternate-reverse;
}

/* Photo circle */
.avatar-inner {
  position: relative; z-index: 3;
  width: 100px; height: 100px;
  border-radius: 50%;
  background: var(--black);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.avatar-inner img { width:100%;height:100%;object-fit:cover;border-radius:50%;display:block; }
.avatar-placeholder {
  font-family: 'Cormorant Garamond', serif;
  font-size: 38px; font-weight: 700; color: var(--gold);
}

@keyframes spinRing {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@keyframes pulseGlow {
  from {
    box-shadow:
      0 0 10px 3px  rgba(201,168,76,0.50),
      0 0 24px 7px  rgba(201,168,76,0.25),
      0 0 50px 12px rgba(201,168,76,0.12);
  }
  to {
    box-shadow:
      0 0 18px 6px  rgba(232,201,122,0.80),
      0 0 40px 14px rgba(201,168,76,0.45),
      0 0 80px 24px rgba(201,168,76,0.22);
  }
}

.username {
  font-family: 'Cormorant Garamond', serif;
  font-size: 28px; font-weight: 700;
  color: var(--gold-light); letter-spacing: 0.04em;
  text-align: center; margin-bottom: 6px;
}
.bio {
  font-size: 12px; font-weight: 300;
  color: var(--text-muted); letter-spacing: 0.1em;
  text-transform: uppercase; text-align: center;
}

/* ===== DIVIDER ===== */
.divider { display:flex;align-items:center;gap:12px;margin-bottom:28px;animation:fadeIn 1s ease 0.3s both; }
.divider-line { flex:1;height:1px;background:linear-gradient(to right,transparent,var(--gold),transparent);opacity:0.4; }
.divider-icon { color:var(--gold);font-size:14px;opacity:0.7; }

/* ===== LINKS ===== */
.links { display:flex;flex-direction:column;gap:12px; }
.link-item { border-radius:12px;animation:fadeUp 0.6s ease both; }
.link-item.hidden { display:none; }

.link-item:nth-child(1) {animation-delay:.10s}
.link-item:nth-child(2) {animation-delay:.20s}
.link-item:nth-child(3) {animation-delay:.30s}
.link-item:nth-child(4) {animation-delay:.40s}
.link-item:nth-child(5) {animation-delay:.50s}
.link-item:nth-child(6) {animation-delay:.60s}
.link-item:nth-child(7) {animation-delay:.70s}
.link-item:nth-child(8) {animation-delay:.80s}
.link-item:nth-child(9) {animation-delay:.90s}
.link-item:nth-child(10){animation-delay:1.00s}

.link-btn {
  display:flex;align-items:center;
  width:100%;padding:0 18px;height:58px;
  background:rgba(22,22,22,0.75);
  border:1px solid rgba(201,168,76,0.15);
  border-radius:12px;
  cursor:pointer;text-decoration:none;gap:14px;
  transition:background .25s,border-color .25s,transform .15s;
  position:relative;overflow:hidden;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.link-btn::before {
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(201,168,76,0.06) 0%,transparent 60%);
  opacity:0;transition:opacity .25s;
}
.link-btn:hover { background:rgba(30,30,30,0.9);border-color:rgba(201,168,76,0.5);transform:translateY(-1px); }
.link-btn:hover::before { opacity:1; }
.link-btn:active { transform:scale(0.98); }
.link-btn:hover .link-name  { color:var(--gold-pale); }
.link-btn:hover .link-arrow { opacity:1;transform:translateX(2px); }

.link-icon {
  width:28px;height:28px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  filter:drop-shadow(0 0 5px rgba(201,168,76,.35));
}
.link-icon svg { width:22px;height:22px; }
.link-name { flex:1;text-align:center;font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text); }
.link-arrow { font-size:14px;color:var(--gold);opacity:.6;flex-shrink:0;transition:transform .3s ease,opacity .2s; }

/* ===== QRIS ===== */
.qris-btn.is-open { border-radius:12px 12px 0 0!important;border-bottom-color:transparent!important;transform:none!important; }
.qris-btn.is-open .link-arrow { transform:rotate(90deg);opacity:1; }
.qris-panel { max-height:0;overflow:hidden;opacity:0;transition:max-height .45s cubic-bezier(.4,0,.2,1),opacity .3s ease; }
.qris-panel.open { max-height:420px;opacity:1; }
.qris-inner { display:flex;flex-direction:column;align-items:center;padding:20px 16px 24px;gap:14px;background:rgba(22,22,22,.85);border:1px solid rgba(201,168,76,.15);border-top:none;border-radius:0 0 12px 12px;backdrop-filter:blur(12px); }
.qris-label { font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);opacity:.85; }
.qris-img-wrap { padding:10px;border-radius:10px;background:#0f0f0f;border:1px solid rgba(201,168,76,.3);position:relative; }
.qris-img-wrap::before,.qris-img-wrap::after { content:'';position:absolute;width:16px;height:16px;border-color:var(--gold);border-style:solid;opacity:.6; }
.qris-img-wrap::before { top:4px;left:4px;border-width:1px 0 0 1px; }
.qris-img-wrap::after  { bottom:4px;right:4px;border-width:0 1px 1px 0; }
.qris-img { width:200px;height:200px;display:block;border-radius:4px; }
.qris-placeholder { width:200px;height:200px;display:none;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#0a0a0a;border:1px dashed rgba(201,168,76,.2);border-radius:4px; }
.qris-placeholder p { font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);text-align:center;line-height:1.8; }
.qris-note { font-size:11px;color:var(--text-muted);letter-spacing:.05em;text-align:center; }

/* ===== FOOTER ===== */
.footer { margin-top:40px;text-align:center;animation:fadeIn 1s ease 1s both; }
.footer p { font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(201,168,76,.25); }
.footer span { color:rgba(201,168,76,.5); }

/* ===== KEYFRAMES ===== */
@keyframes drift {
  0%  {transform:translate(0,0) scale(1)}
  33% {transform:translate(20px,-30px) scale(1.05)}
  66% {transform:translate(-15px,20px) scale(0.97)}
  100%{transform:translate(10px,-10px) scale(1.02)}
}
@keyframes fadeDown { from{opacity:0;transform:translateY(-16px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeUp   { from{opacity:0;transform:translateY(12px)}  to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn   { from{opacity:0} to{opacity:1} }
