Files
2026-10-11 00:04:44 +04:00

90 lines
3.8 KiB
CSS

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&family=JetBrains+Mono:wght@400;600&display=swap');
body { font-family: 'Inter', sans-serif; }
code, pre, kbd { font-family: 'JetBrains Mono', monospace; }
h1, h2, h3 { letter-spacing: -0.02em; }
.vcard {
position: relative;
min-height: calc(100vh - 10rem);
display: grid;
place-items: center;
padding: 2rem 0;
}
.vcard__bg {
position: fixed; inset: 0; z-index: -1;
background-size: cover; background-position: center;
filter: blur(6px) brightness(.45);
transform: scale(1.05);
}
.vcard__box {
width: min(100%, 420px);
padding: 2.5rem 2rem;
text-align: center;
border-radius: 1.25rem;
background: rgba(var(--color-neutral-800), .65);
border: 1px solid rgba(var(--color-primary-500), .25);
backdrop-filter: blur(12px);
box-shadow: 0 20px 60px rgba(0,0,0,.45);
}
.vcard__avatar {
width: 128px; height: 128px; margin: 0 auto 1.25rem;
border-radius: 50%; object-fit: cover;
border: 3px solid rgba(var(--color-primary-500), .8);
}
.vcard__name { font-size: 1.9rem; font-weight: 800; line-height: 1.15; margin: 0; color: #fff; }
.vcard__nick { margin: .2rem 0 0; font-family: 'JetBrains Mono', monospace; color: rgba(var(--color-primary-400), 1); }
.vcard__role { margin: .9rem 0 0; color: rgba(var(--color-neutral-300), 1); font-size: 1rem; line-height: 1.5; }
.vcard__status {
display: inline-flex; align-items: center; gap: .5rem;
margin: 1.25rem 0 0; padding: .35rem .9rem;
border-radius: 999px; font-size: .9rem;
background: rgba(255,255,255,.06);
color: rgba(var(--color-neutral-200), 1);
}
.vcard__dot { width: .55rem; height: .55rem; border-radius: 50%; background: var(--dot); box-shadow: 0 0 0 0 var(--dot); animation: vcard-pulse 2s infinite; }
.is-open { --dot: #22c55e; }
.is-busy { --dot: #f59e0b; }
.is-away { --dot: #9ca3af; }
.is-away .vcard__dot { animation: none; }
@keyframes vcard-pulse { 0% { box-shadow: 0 0 0 0 var(--dot); } 70% { box-shadow: 0 0 0 .5rem transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }
.vcard__links { list-style: none; padding: 0; margin: 1.75rem 0 0; display: grid; gap: .6rem; }
.vcard__links a {
display: flex; align-items: center; justify-content: center; gap: .6rem;
padding: .7rem 1rem; border-radius: .75rem;
text-decoration: none; font-weight: 600; color: #fff;
background: rgba(var(--color-primary-600), .25);
border: 1px solid rgba(var(--color-primary-500), .35);
transition: background .15s, transform .15s;
}
.vcard__links a:hover { background: rgba(var(--color-primary-600), .5); transform: translateY(-1px); }
.vcard__icon { display: inline-flex; width: 1.1rem; height: 1.1rem; }
.vcard__icon svg { width: 100%; height: 100%; fill: currentColor; }
.vcard__more { display: inline-block; margin-top: 1.5rem; font-size: .9rem; color: rgba(var(--color-primary-400), 1); text-decoration: none; }
.vcard__more:hover { text-decoration: underline; }
.vcard__heading {
margin: 1.75rem 0 0; font-size: .8rem; font-weight: 600;
text-transform: uppercase; letter-spacing: .08em;
color: rgba(var(--color-neutral-400), 1);
}
.vcard__posts { list-style: none; padding: 0; margin: .6rem 0 0; display: grid; gap: .5rem; }
.vcard__posts a {
display: flex; flex-direction: column; gap: .15rem;
padding: .6rem 1rem; border-radius: .75rem;
text-align: left; text-decoration: none; color: #fff;
background: rgba(255,255,255,.04);
border: 1px solid rgba(255,255,255,.08);
transition: background .15s, border-color .15s, transform .15s;
}
.vcard__posts a:hover {
background: rgba(var(--color-primary-600), .2);
border-color: rgba(var(--color-primary-500), .35);
transform: translateY(-1px);
}
.vcard__post-title { font-weight: 600; font-size: .95rem; line-height: 1.3; }
.vcard__post-date { font-size: .8rem; color: rgba(var(--color-neutral-400), 1); }