/* ==========================================================
   HASHVIX CARD SYSTEM
========================================================== */

/* ==========================================================
   BASE CARD
========================================================== */

.hx-card{

position:relative;

background:var(--hx-surface);

border:1px solid var(--hx-border);

border-radius:28px;

overflow:hidden;

transition:var(--hx-normal);

box-shadow:var(--hx-shadow);

}

.hx-card:hover{

transform:translateY(-8px);

box-shadow:

0 30px 70px rgba(0,0,0,.45);

}


/* ==========================================================
   GLASS CARD
========================================================== */

.hx-card-glass{

background:rgba(255,255,255,.05);

backdrop-filter:blur(30px);

border:1px solid rgba(255,255,255,.08);

}


/* ==========================================================
   CARD HEADER
========================================================== */

.hx-card-header{

padding:30px;

display:flex;

justify-content:space-between;

align-items:center;

border-bottom:1px solid rgba(255,255,255,.05);

}


/* ==========================================================
   CARD BODY
========================================================== */

.hx-card-body{

padding:30px;

}


/* ==========================================================
   CARD FOOTER
========================================================== */

.hx-card-footer{

padding:24px 30px;

border-top:1px solid rgba(255,255,255,.05);

}


/* ==========================================================
   MUSIC CARD
========================================================== */

.hx-music-card{

display:block;

position:relative;

overflow:hidden;

border-radius:28px;

background:var(--hx-surface);

border:1px solid var(--hx-border);

transition:var(--hx-normal);

}

.hx-music-card:hover{

transform:translateY(-10px);

box-shadow:

0 35px 80px rgba(0,0,0,.5);

}


/* ==========================================================
   COVER
========================================================== */

.hx-music-image{

position:relative;

height:300px;

overflow:hidden;

}

.hx-music-image img{

width:100%;

height:100%;

object-fit:cover;

transition:.6s;

}

.hx-music-card:hover img{

transform:scale(1.08);

}


/* ==========================================================
   OVERLAY
========================================================== */

.hx-music-overlay{

position:absolute;

inset:0;

display:flex;

align-items:center;

justify-content:center;

background:rgba(5,7,11,.55);

opacity:0;

transition:.35s;

}

.hx-music-card:hover .hx-music-overlay{

opacity:1;

}


/* ==========================================================
   PLAY BUTTON
========================================================== */

.hx-play-btn{

width:74px;

height:74px;

border-radius:50%;

background:var(--hx-gradient-primary);

display:flex;

align-items:center;

justify-content:center;

font-size:28px;

color:white;

box-shadow:

0 20px 60px rgba(79,140,255,.45);

transform:scale(.8);

transition:.3s;

}

.hx-music-card:hover .hx-play-btn{

transform:scale(1);

}


/* ==========================================================
   BODY
========================================================== */

.hx-music-body{

padding:26px;

}


/* ==========================================================
   TITLE
========================================================== */

.hx-music-body h4{

font-size:21px;

font-weight:700;

margin-bottom:10px;

white-space:nowrap;

overflow:hidden;

text-overflow:ellipsis;

}


/* ==========================================================
   GENRE
========================================================== */

.hx-music-genre{

color:var(--hx-text-muted);

font-size:14px;

margin-bottom:18px;

}

/* ==========================================================
   TRACK FOOTER
========================================================== */

.hx-track-footer{

display:flex;

justify-content:space-between;

align-items:center;

margin-top:20px;

padding-top:18px;

border-top:1px solid rgba(255,255,255,.05);

font-size:14px;

color:var(--hx-text-muted);

}

.hx-track-footer span{

display:flex;

align-items:center;

gap:8px;

}

.hx-track-footer i{

font-size:17px;

}


/* ==========================================================
   TAGS
========================================================== */

.hx-tags{

display:flex;

flex-wrap:wrap;

gap:10px;

margin-top:16px;

}

.hx-tags span{

padding:8px 14px;

border-radius:999px;

background:rgba(255,255,255,.05);

border:1px solid rgba(255,255,255,.05);

font-size:12px;

color:var(--hx-text-light);

}


/* ==========================================================
   ARTIST CARD
========================================================== */

.hx-artist-card{

display:block;

background:var(--hx-surface);

border:1px solid var(--hx-border);

border-radius:28px;

padding:30px;

text-align:center;

transition:var(--hx-normal);

overflow:hidden;

position:relative;

}

.hx-artist-card:hover{

transform:translateY(-10px);

box-shadow:0 30px 80px rgba(0,0,0,.45);

}

.hx-artist-card img{

width:130px;

height:130px;

margin:auto;

border-radius:50%;

object-fit:cover;

margin-bottom:22px;

border:4px solid rgba(255,255,255,.08);

transition:.4s;

}

.hx-artist-card:hover img{

transform:scale(1.08);

}

.hx-artist-card h4{

font-size:22px;

margin-bottom:8px;

}

.hx-artist-card span{

display:block;

color:var(--hx-text-muted);

font-size:14px;

}


/* ==========================================================
   VERIFIED
========================================================== */

.hx-verified{

display:inline-flex;

align-items:center;

justify-content:center;

width:22px;

height:22px;

border-radius:50%;

background:var(--hx-primary);

color:#fff;

font-size:12px;

margin-left:8px;

}


/* ==========================================================
   FEATURED CARD
========================================================== */

.hx-featured-card{

display:grid;

grid-template-columns:280px 1fr;

gap:35px;

padding:35px;

background:linear-gradient(

135deg,

rgba(79,140,255,.12),

rgba(139,92,246,.10));

border-radius:32px;

border:1px solid rgba(255,255,255,.06);

overflow:hidden;

}

.hx-featured-card img{

width:100%;

height:280px;

object-fit:cover;

border-radius:24px;

}


/* ==========================================================
   DASHBOARD CARD
========================================================== */

.hx-dashboard-card{

padding:30px;

border-radius:28px;

background:var(--hx-surface);

border:1px solid var(--hx-border);

transition:.3s;

}

.hx-dashboard-card:hover{

transform:translateY(-8px);

}

.hx-dashboard-card h5{

margin-bottom:12px;

font-size:18px;

}

.hx-dashboard-card strong{

display:block;

font-size:34px;

font-weight:800;

margin-top:12px;

}


/* ==========================================================
   STAT CARD
========================================================== */

.hx-stat-card{

padding:28px;

background:rgba(255,255,255,.04);

border-radius:24px;

text-align:center;

border:1px solid rgba(255,255,255,.06);

transition:.3s;

}

.hx-stat-card:hover{

transform:translateY(-8px);

background:rgba(255,255,255,.06);

}

.hx-stat-card i{

font-size:34px;

margin-bottom:18px;

color:var(--hx-primary);

}

.hx-stat-card strong{

display:block;

font-size:34px;

margin-bottom:6px;

}

.hx-stat-card span{

color:var(--hx-text-muted);

}


/* ==========================================================
   PRICING CARD
========================================================== */

.hx-pricing-card{

padding:40px;

border-radius:30px;

background:var(--hx-surface);

border:1px solid rgba(255,255,255,.06);

position:relative;

overflow:hidden;

}

.hx-pricing-card.popular{

border:2px solid var(--hx-primary);

box-shadow:0 0 40px rgba(79,140,255,.25);

}

.hx-pricing-price{

font-size:54px;

font-weight:900;

margin:20px 0;

}

.hx-pricing-price small{

font-size:18px;

color:var(--hx-text-muted);

}


/* ==========================================================
   COMMENT CARD
========================================================== */

.hx-comment{

display:flex;

gap:18px;

padding:22px 0;

border-bottom:1px solid rgba(255,255,255,.05);

}

.hx-comment:last-child{

border-bottom:none;

}

.hx-comment-avatar img{

width:54px;

height:54px;

border-radius:50%;

object-fit:cover;

}

.hx-comment-body{

flex:1;

}

.hx-comment-body h5{

font-size:16px;

margin-bottom:6px;

}

.hx-comment-body p{

font-size:15px;

line-height:1.7;

}


/* ==========================================================
   PREMIUM CARD
========================================================== */

.hx-premium-card{

position:relative;

overflow:hidden;

padding:35px;

border-radius:32px;

background:linear-gradient(
145deg,
rgba(79,140,255,.08),
rgba(139,92,246,.08));

border:1px solid rgba(255,255,255,.08);

backdrop-filter:blur(30px);

transition:var(--hx-normal);

}

.hx-premium-card:hover{

transform:translateY(-10px);

box-shadow:
0 35px 80px rgba(79,140,255,.18);

}

.hx-premium-card::before{

content:"";

position:absolute;

top:-60%;

left:-60%;

width:180%;

height:180%;

background:

radial-gradient(circle,

rgba(255,255,255,.08),

transparent 60%);

transform:rotate(20deg);

pointer-events:none;

}


/* ==========================================================
   PLAYLIST CARD
========================================================== */

.hx-playlist-card{

position:relative;

border-radius:26px;

overflow:hidden;

background:var(--hx-surface);

border:1px solid var(--hx-border);

transition:.35s;

}

.hx-playlist-card:hover{

transform:translateY(-8px);

}

.hx-playlist-cover{

height:220px;

overflow:hidden;

}

.hx-playlist-cover img{

width:100%;

height:100%;

object-fit:cover;

transition:.6s;

}

.hx-playlist-card:hover img{

transform:scale(1.08);

}

.hx-playlist-body{

padding:25px;

}


/* ==========================================================
   ALBUM CARD
========================================================== */

.hx-album-card{

display:flex;

gap:20px;

align-items:center;

padding:22px;

background:var(--hx-surface);

border-radius:24px;

border:1px solid var(--hx-border);

transition:.3s;

}

.hx-album-card:hover{

background:var(--hx-surface-2);

}

.hx-album-card img{

width:90px;

height:90px;

border-radius:18px;

object-fit:cover;

}


/* ==========================================================
   ANALYTICS CARD
========================================================== */

.hx-analytics-card{

padding:35px;

border-radius:28px;

background:var(--hx-surface);

border:1px solid rgba(255,255,255,.06);

}

.hx-analytics-value{

font-size:46px;

font-weight:800;

margin-top:15px;

}

.hx-analytics-growth{

display:inline-flex;

align-items:center;

gap:8px;

padding:8px 16px;

border-radius:999px;

background:rgba(16,185,129,.12);

color:#10B981;

font-size:13px;

margin-top:18px;

}


/* ==========================================================
   TRENDING CARD
========================================================== */

.hx-trending-card{

display:flex;

align-items:center;

gap:20px;

padding:20px;

border-radius:22px;

background:var(--hx-surface);

border:1px solid rgba(255,255,255,.05);

transition:.3s;

}

.hx-trending-card:hover{

transform:translateX(8px);

}

.hx-trending-number{

font-size:34px;

font-weight:900;

color:var(--hx-primary);

min-width:55px;

}


/* ==========================================================
   LEADERBOARD
========================================================== */

.hx-leaderboard{

display:flex;

align-items:center;

justify-content:space-between;

padding:22px;

border-radius:22px;

background:rgba(255,255,255,.04);

margin-bottom:15px;

transition:.3s;

}

.hx-leaderboard:hover{

background:rgba(255,255,255,.06);

}

.hx-leaderboard-user{

display:flex;

align-items:center;

gap:16px;

}

.hx-leaderboard-user img{

width:58px;

height:58px;

border-radius:50%;

object-fit:cover;

}


/* ==========================================================
   ACTIVITY CARD
========================================================== */

.hx-activity-card{

padding:26px;

border-radius:24px;

background:var(--hx-surface);

border:1px solid rgba(255,255,255,.05);

display:flex;

gap:18px;

align-items:flex-start;

}

.hx-activity-icon{

width:52px;

height:52px;

border-radius:50%;

display:flex;

align-items:center;

justify-content:center;

background:var(--hx-gradient-primary);

color:white;

font-size:22px;

}


/* ==========================================================
   HOVER GLOW
========================================================== */

.hx-card-glow:hover{

box-shadow:

0 0 45px rgba(79,140,255,.28);

}


/* ==========================================================
   BORDER ANIMATION
========================================================== */

.hx-card-border{

position:relative;

}

.hx-card-border::after{

content:"";

position:absolute;

inset:0;

padding:1px;

border-radius:inherit;

background:

linear-gradient(

135deg,

transparent,

rgba(79,140,255,.55),

transparent);

-webkit-mask:

linear-gradient(#fff 0 0) content-box,

linear-gradient(#fff 0 0);

-webkit-mask-composite:xor;

mask-composite:exclude;

opacity:0;

transition:.4s;

}

.hx-card-border:hover::after{

opacity:1;

}


/* ==========================================================
   MOBILE
========================================================== */

@media(max-width:992px){

.hx-featured-card{

grid-template-columns:1fr;

}

.hx-album-card{

flex-direction:column;

text-align:center;

}

}

@media(max-width:768px){

.hx-card-header,

.hx-card-body,

.hx-card-footer{

padding:20px;

}

.hx-music-image{

height:240px;

}

.hx-artist-card{

padding:24px;

}

.hx-dashboard-card{

padding:24px;

}

.hx-pricing-card{

padding:30px;

}

.hx-playlist-cover{

height:190px;

}

}