:root {
  --bg-1: #0b0f14;
  --bg-2: #10151c;
  --text: #e6edf3;
  --muted: #a0a6ad;
  --chip-bd: rgba(255, 255, 255, 0.06);
  --ring: rgba(125, 211, 252, 0.16);
  --label-w: 110px;
  --gap: 18px; /* lưới trái/phải */
}

* {
  box-sizing: border-box;
}
html,
body {
  height: 100%;
}
body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial,
    sans-serif;
  color: var(--text);
  background: radial-gradient(
      1000px 700px at 60% -10%,
      var(--bg-2),
      transparent 55%
    ),
    linear-gradient(180deg, var(--bg-2), var(--bg-1));
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.screen {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
}
.wrap {
  width: min(880px, 92vw);
}

/* -------- GRID CHUNG CHO TẤT CẢ HÀNG -------- */
.row {
  display: grid;
  grid-template-columns: var(--label-w) 1fr;
  gap: 12px var(--gap);
  align-items: start;
  margin-top: 20px;
}
.label {
  color: var(--muted);
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas,
    monospace;
  font-size: 12px;
  letter-spacing: 0.3px;
  user-select: none;
  display: flex;
  align-items: center;
  height: 2.0em; /* căn giữa theo dòng đầu bên phải */
}

/* -------- HÀNG ĐẦU: AVATAR + NAME TRONG CỘT PHẢI -------- */
.head-right {
  display: flex;
  align-items: center;
  gap: 22px;
}
.avatar {
  width: 100px;
  height: 100px;
  border-radius: 999px;
  object-fit: cover;
  box-shadow: 0 0 0 4px #0d1117, 0 0 0 6px rgba(255, 255, 255, 0.06),
    0 10px 30px rgba(0, 0, 0, 0.65);
}
/* Tên mỗi ký tự – đặt đúng cột phải của bạn nếu dùng 2 cột label|content */
.name-per-letter{
  cursor: pointer;
  font-size: 0;
  white-space: nowrap;

  /* style thực tế: đặt lại bằng biến --fs trên span con */
  --fs: clamp(28px, 5vw, 34px);
  --track: 0.02em;                 /* chỉnh gần/xa toàn tên */
  line-height: 1.2;
  font-weight: 800;
}

.name-per-letter > span{
  display:inline-block;
  font-size: var(--fs);            /* phục hồi cỡ chữ */
  letter-spacing: var(--track);
  vertical-align: baseline;
}

/* hiện ngay (D,Q,T) */
.name-per-letter .v{ opacity:1 }

/* ẩn ban đầu: không chiếm chỗ, KHÔNG làm lẽn spacing */
.name-per-letter .k{
  opacity:0;
  max-width:0;
  overflow:hidden;
  transform: translateY(8px);
  filter: blur(2px);
  transition:
    opacity .28s ease,
    transform .32s ease,
    filter .32s ease,
    max-width .36s ease;
  transition-delay: var(--d, 0ms);
}

/* hover/focus: bung dần theo --d */
.name-per-letter:hover .k,
.name-per-letter:focus-within .k{
  opacity:1;
  max-width: var(--w, 1ch);
  filter: blur(0);
}

/* -------- NỘI DUNG -------- */
.text {
  margin: 0;
  color: var(--muted);
  line-height: 1.75;
}

/* -------- SOCIALS (giữ đúng SVG) -------- */
.links {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.group {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--text);
}
.iconwrap {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: linear-gradient(135deg, #1b2430, rgba(27, 36, 48, 0)) #0f141b;
  border: 1px solid var(--chip-bd);
  transition: box-shadow 0.3s ease, transform 0.18s ease,
    border-color 0.18s ease;
}
.icon {
  opacity: 0.95;
}
.linktext {
  color: var(--muted);
  font-size: 0.875rem;
  transition: color 0.2s ease;
}
.group:hover .iconwrap {
  box-shadow: 0 0 0 4px var(--ring), 0 0 0 1px var(--chip-bd);
  transform: translateY(-1px);
  border-color: #2a3340;
}
.group:hover .linktext {
  color: var(--text);
}

.about-content p {
  margin: 0 0 12px 0;  /* khoảng cách dưới mỗi đoạn */
}
.about-content p:last-child {
  margin-bottom: 0;
}
/* Music bar tối giản */
.musicbar{
  position: fixed; left: 50%; transform: translateX(-50%);
  bottom: 16px; width: min(860px, 92vw);
  display: grid; grid-template-columns: auto 1fr auto; gap: 12px;
  align-items: center;
  background: #0f141b; border: 1px solid rgba(255,255,255,.06);
  border-radius: 12px; padding: 10px 12px;
  box-shadow: 0 6px 30px rgba(0,0,0,.45); z-index: 60;
}
.mb-left{ display:flex; gap:10px; align-items:center; }
.mb-btn{
  display:inline-flex; align-items:center; justify-content:center;
  height:36px; width:40px; border:1px solid rgba(255,255,255,.06);
  background:#16202b; color:#e6edf3; border-radius:10px; cursor:pointer;
  transition:transform .15s ease, border-color .2s ease, box-shadow .2s ease;
}
.mb-btn:hover{ transform: translateY(-1px); border-color:#2a3340; box-shadow:0 0 0 4px rgba(125,211,252,.16); }
.mb-center{ min-width: 0; }
.mb-title{ font-size:.95rem; color:#a0a6ad; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mb-right{ display:flex; align-items:center; gap:10px; }
.mb-time{ font-variant-numeric: tabular-nums; color:#a0a6ad; font-size:.9rem; }

@media (max-width:600px){
  .musicbar{ grid-template-columns:auto 1fr auto; width: min(640px, 94vw); }
  .mb-title{ font-size:.9rem; }
  .mb-time{ font-size:.85rem; }
}


@media (min-width: 768px) {
  html,
  body {
    overflow-y: hidden;
  }
} /* desktop: 1 màn hình */

/* ===== Mobile layout: hiển thị như ảnh (card 1 cột, ẩn /about & /socials) ===== */
@media (max-width: 520px) {
  /* chỉ còn 1 cột nội dung */
  .row {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 16px;
  }
  /* ẩn label /about, /socials */
  .label {
    display: none;
  }

  /* bọc toàn trang thành 1 “card” gọn gàng */
  .wrap {
    background: none;
    border: 0;
    box-shadow: none;
    padding: 0;
  }

  /* avatar + tên xếp dọc, căn trái */
  .head-right {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .avatar {
    width: 76px;
    height: 76px;
    margin: 0; /* bỏ margin-left vì không còn cột trái */
  }

 .name-per-letter{ --track: 0.01em; }

  /* đoạn mô tả /about */
  .text {
    font-size: 15px;
    line-height: 1.8;
    margin-top: 2px;
  }

  /* khu vực socials giống ảnh: icon + nhãn, khoảng cách nhỏ hơn */
  .links {
    gap: 14px;
  }
  .iconwrap {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: linear-gradient(135deg, #1b2430, rgba(27, 36, 48, 0)) #0f141b;
  }
  .linktext {
    font-size: 0.875rem;
  }

  /* đảm bảo mobile cuộn dọc bình thường */
  html,
  body {
    overflow-y: auto;
  }
}
