/* ========== base ========== */
*{box-sizing:border-box}
html,body{height:100%;margin:0;overflow-x:hidden}
#bg-canvas{position:fixed;inset:0;z-index:0;display:block}

/* navbar */
.nav{
  position:sticky; top:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 20px; gap:10px;
  background: linear-gradient(90deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  backdrop-filter: blur(8px) saturate(140%);
  border-bottom:1px solid rgba(255,255,255,0.03);
}
.logo{font-weight:700; font-size:16px; text-decoration:none}
.nav-links{display:flex; gap:10px; align-items:center}
.nav-links a{color:var(--muted); text-decoration:none; padding:8px 12px; border-radius:10px; transition:.18s}
.nav-links a:hover{color:var(--text-light); transform:translateY(-3px); background:rgba(255,255,255,0.02)}
.nav-burger{display:none;background:transparent;border:none;color:var(--muted);font-size:18px;cursor:pointer}
.icon-btn{background:transparent;border:0;color:var(--muted);font-size:16px;padding:8px;border-radius:8px;cursor:pointer}
.icon-btn:hover{color:var(--text-light);transform:translateY(-3px)}

/* main card */
main{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 120px);z-index:2;padding:30px}
.card{
  width:100%; max-width:760px; margin:20px; padding:28px; border-radius:var(--radius-lg);
  background:var(--glass); border:1px solid var(--glass-border);
  box-shadow:var(--shadow-soft); backdrop-filter: blur(10px) saturate(140%);
  text-align:center; position:relative;
}

/* profile */
.profile-wrap{display:flex;justify-content:center;margin-top:-70px;margin-bottom:10px}
.profile-wrap.small{margin-top:-60px;margin-bottom:8px}
.profile-img{
  width:160px;height:160px;border-radius:50%;object-fit:cover;border:4px solid rgba(255,255,255,0.9);
  box-shadow:0 10px 30px rgba(0,0,0,0.45);transform-origin:center;transition:transform .35s,box-shadow .35s;
  animation:float 4s ease-in-out infinite;
}
.profile-img:hover{transform:translateY(-6px) rotate(2deg) scale(1.03); box-shadow:0 18px 40px rgba(0,0,0,0.55)}
@keyframes float{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.02)}100%{transform:translateY(0) scale(1)}}

/* titles */
.title{font-size:28px;margin:6px 0 0;letter-spacing:.4px;font-weight:600}
.subtitle{color:var(--muted);margin-top:6px;font-size:14px}
.lead{color:var(--muted);margin-top:6px}

/* buttons soft / neumorphism */
.buttons{display:flex;flex-direction:column;gap:12px;margin-top:18px;padding-bottom:6px}
.btn{display:inline-flex;align-items:center;gap:10px;justify-content:center;padding:14px 20px;text-decoration:none;color:var(--text-light);border-radius:999px;font-weight:600;transition:all .22s}
.btn i{font-size:14px;color:var(--brand-secondary)}
.btn.soft{background:linear-gradient(90deg,var(--brand-primary),var(--brand-secondary));color:white;border:none;box-shadow:0 8px 30px rgba(123,60,255,0.18)}
.btn.soft:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 18px 46px rgba(123,60,255,0.28)}

/* stats */
.stats{display:flex;gap:14px;justify-content:center;margin-top:16px}
.stat{min-width:70px;background:rgba(255,255,255,0.02);padding:10px;border-radius:12px}
.stat strong{display:block;font-size:18px}
.stat span{display:block;font-size:12px;color:var(--muted)}

/* links box */
.links-box{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.link-btn{display:block;text-decoration:none;padding:12px 16px;border-radius:12px;background:linear-gradient(90deg,rgba(255,255,255,0.02),rgba(255,255,255,0.01));color:var(--text-light);border:1px solid rgba(255,255,255,0.04);transition:all .18s}
.link-btn i{margin-right:8px;color:var(--brand-primary)}
.link-btn:hover{transform:translateY(-6px);background:linear-gradient(90deg,rgba(255,255,255,0.04),rgba(255,255,255,0.02));box-shadow:0 12px 30px rgba(0,0,0,0.25)}

/* 3D info card */
.info-3d{display:flex;gap:14px;align-items:center;margin-top:16px;padding:12px;background:linear-gradient(90deg,rgba(255,255,255,0.02),rgba(255,255,255,0.01));border-radius:12px}
.info-left{flex:1;text-align:left}
.info-right{width:120px;display:flex;align-items:center;justify-content:center}

/* sidebar */
.sidebar{position:fixed;right:-320px;top:0;bottom:0;width:320px;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));box-shadow: -20px 0 40px rgba(0,0,0,0.5);z-index:30;padding:18px;transition:right .32s;backdrop-filter: blur(8px)}
.sidebar.open{right:0}
.sidebar-nav{display:flex;flex-direction:column;gap:10px;margin-top:22px}
.sidebar-nav a{display:flex;align-items:center;gap:12px;padding:10px;border-radius:10px;color:var(--muted);text-decoration:none}
.sidebar-nav a:hover{color:var(--text-light);background:rgba(255,255,255,0.02)}
.close-sidebar{background:transparent;border:0;color:var(--muted);font-size:18px;cursor:pointer}

/* footer */
.footer{text-align:center;padding:18px 12px;color:var(--muted);font-size:13px;z-index:2;position:relative}

/* fade-up animation */
.fade-up{opacity:0;transform:translateY(12px);transition:all .6s cubic-bezier(.2,.9,.2,1)}
.fade-up.visible{opacity:1;transform:translateY(0)}

/* tilt-card simple */
.tilt-card{transform-style:preserve-3d; transition:transform .12s cubic-bezier(.2,.9,.2,1); will-change:transform}
.tilt-card:active{transition:none}

/* splash */
.splash{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(10,0,20,0.9),rgba(20,0,40,0.95));z-index:60;backdrop-filter: blur(6px);transition:opacity .45s}
.splash-inner{text-align:center;color:white}
.splash h2{margin-top:10px;font-weight:600}

/* responsive */
@media (max-width:900px){
  .nav-links{display:none}
  .nav-burger{display:inline-block}
  .sidebar{width:100%;max-width:360px}
  .card{margin:14px;padding:20px}
  .profile-img{width:140px;height:140px}
}
@media (max-width:480px){
  .profile-img{width:120px;height:120px}
  .title{font-size:20px}
  .buttons{gap:8px}
}

@media (max-width:360px){
  .nav-burger {
    font-size: 20px;
    padding: 8px;
  }
  .sidebar {
    max-width: 280px;
    padding: 14px;
  }
  .card {
    margin: 10px;
    padding: 16px;
  }
  .profile-img {
    width: 110px;
    height: 110px;
  }
  .title {
    font-size: 18px;
  }
  .buttons {
    gap: 6px;
  }
  .btn {
    padding: 12px 16px;
    font-size: 14px;
  }
  .sidebar-nav a {
    padding: 8px;
    font-size: 14px;
  }
}

@media (max-width:320px){
  main {
    padding: 15px 10px;
  }
  .card {
    margin: 8px;
    padding: 12px;
  }
  .profile-img {
    width: 90px;
    height: 90px;
  }
  .title {
    font-size: 16px;
  }
  .subtitle {
    font-size: 12px;
  }
  .btn {
    padding: 10px 14px;
    font-size: 13px;
  }
  .buttons {
    gap: 5px;
  }
  .sidebar {
    max-width: 240px;
    padding: 12px;
  }
  .sidebar-nav a {
    padding: 6px;
    font-size: 13px;
  }
}
