.reflective-card-container {
position: relative;
width: 320px;
height: 500px;
border-radius: 20px;
overflow: hidden;
background: #1a1a1a;
box-shadow:
0 20px 50px rgba(0, 0, 0, 0.5),
0 0 0 1px rgba(255, 255, 255, 0.1) inset;
isolation: isolate;
font-family: 'Inter', sans-serif;
}
.reflective-svg-filters {
position: absolute;
width: 0;
height: 0;
pointer-events: none;
opacity: 0;
}
.reflective-video {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
transform: scale(1.2) scaleX(-1);
filter: saturate(var(--saturation, 0)) contrast(120%) brightness(110%) blur(var(--blur-strength, 12px))
url(#metallic-displacement);
z-index: 0;
opacity: 0.9;
transition: filter 0.3s ease;
}
.reflective-noise {
position: absolute;
inset: 0;
z-index: 1;
opacity: var(--roughness, 0.4);
pointer-events: none;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
mix-blend-mode: overlay;
}
.reflective-sheen {
position: absolute;
inset: 0;
z-index: 2;
background: linear-gradient(
135deg,
rgba(255, 255, 255, 0.4) 0%,
rgba(255, 255, 255, 0.1) 40%,
rgba(255, 255, 255, 0) 50%,
rgba(255, 255, 255, 0.1) 60%,
rgba(255, 255, 255, 0.3) 100%
);
pointer-events: none;
mix-blend-mode: overlay;
opacity: var(--metalness, 1);
}
.reflective-border {
position: absolute;
inset: 0;
border-radius: 20px;
padding: 1px;
background: linear-gradient(
135deg,
rgba(255, 255, 255, 0.8) 0%,
rgba(255, 255, 255, 0.2) 50%,
rgba(255, 255, 255, 0.6) 100%
);
-webkit-mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);
mask-composite: exclude;
z-index: 20;
pointer-events: none;
}
.reflective-content {
position: relative;
z-index: 10;
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
padding: 32px;
color: var(--text-color, white);
background: var(--overlay-color, rgba(255, 255, 255, 0.05));
}
.card-header {
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
padding-bottom: 16px;
}
.security-badge {
display: flex;
align-items: center;
gap: 6px;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.1em;
padding: 4px 8px;
background: rgba(255, 255, 255, 0.1);
border-radius: 4px;
border: 1px solid rgba(255, 255, 255, 0.2);
}
.status-icon {
opacity: 0.8;
}
.card-body {
flex: 1;
display: flex;
flex-direction: column;
justify-content: end;
align-items: center;
text-align: center;
gap: 24px;
margin-bottom: 2em;
}
.user-name {
font-size: 24px;
font-weight: 700;
letter-spacing: 0.05em;
margin: 0 0 8px 0;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.user-role {
font-size: 12px;
letter-spacing: 0.2em;
opacity: 0.7;
margin: 0;
text-transform: uppercase;
}
.card-footer {
display: flex;
justify-content: space-between;
align-items: flex-end;
border-top: 1px solid rgba(255, 255, 255, 0.2);
padding-top: 24px;
}
.id-section {
display: flex;
flex-direction: column;
gap: 4px;
}
.label {
font-size: 9px;
letter-spacing: 0.1em;
opacity: 0.6;
}
.value {
font-family: monospace;
font-size: 14px;
letter-spacing: 0.05em;
}
.fingerprint-icon {
opacity: 0.4;
}