/* ═══════════════════════════════════════════════════════════════════════
   ÁO ĐEN — HỒNG CÁNH SEN — TRẮNG · dùng riêng cho TOÀN BỘ thư mục /video/
   Nạp SAU post.css. Mọi trang trong /video/ chỉ cần thêm 1 dòng:
     <link rel="stylesheet" href="/assets/video.css?v=1">
   Không đụng post.css → blog và các trang khác giữ nguyên màu kem cũ.

   ⚠️ ĐỔI MÀU CHỈ SỬA Ở KHỐI :root NGAY DƯỚI ĐÂY — không sửa chỗ nào khác.
   Mã lấy từ ảnh mẫu chị gửi (bảng LED Wink trong thang máy):
     nền đen · chữ trắng · chữ "HANOI" hồng cánh sen.
   ═══════════════════════════════════════════════════════════════════════ */
:root{
  /* ── Hồng cánh sen ──
     ĐỔI MÀU: chỉ cần sửa --sen. Nền nút tự đậm theo, không phải sửa tay. */
  --sen:#FF2D7E;          /* CHÍNH — đọc từ chữ "HANOI" trong ảnh */
  --sen-sang:#FF7AB0;     /* nhạt hơn — chỉ dùng khi rê chuột */
  --sen-tham:#B3004F;     /* thẫm — viền, bóng, chuyển sắc */
  --sen-mo:rgba(255,45,126,.14);  /* loãng — quầng sáng nền */
  /* Nền nút: đậm hơn --sen một nấc để CHỮ TRẮNG trên nút đọc rõ (đạt chuẩn AA).
     Dùng nguyên --sen làm nền thì trắng-trên-hồng chỉ được 3.5:1 — hơi mờ mắt.
     Dòng 1 là mã dự phòng cho trình duyệt cũ, dòng 2 tự pha từ --sen. */
  --sen-nut:#DB1A6B;
  --sen-nut:color-mix(in srgb,var(--sen) 84%,#000);

  /* ── Nền đen ── */
  --den:#050507;          /* nền trang */
  --den-2:#101014;        /* nền thẻ / băng */
  --den-3:#18171E;        /* nền ô nhập */
  --vien:#26232C;         /* viền mảnh */
  --vien-manh:#3A3543;    /* viền rõ */

  /* ── Chữ ── */
  --trang:#FFFFFF;        /* tiêu đề */
  --trang-diu:#EAE7EE;    /* thân bài */
  --xam:#A49CAE;          /* chữ phụ, chú thích */

  /* ── Kiểu chữ ──
     Sans-serif hình học, tiêu đề IN HOA đậm — theo mẫu chị gửi.
     ⚠️ Font PHẢI có bộ dấu tiếng Việt. Poppins KHÔNG có tiếng Việt → đừng dùng,
        chữ ế/ữ/ộ sẽ rơi sang font khác, nhìn vỡ và lệch dòng.
     Đổi font: sửa đúng dòng --font dưới đây (và dòng <link> font trong file .html).
     Đã kiểm có tiếng Việt: Montserrat · Be Vietnam Pro · Nunito Sans · Inter. */
  --font:'Montserrat','Be Vietnam Pro',system-ui,sans-serif;

  /* text-wrap:balance — chia chữ cho các dòng ĐỀU NHAU thay vì nhồi đầy dòng trên
     rồi để dòng cuối trơ một từ lẻ ("...TỪNG BƯỚC / MỘT"). Chữ tiêu đề càng to,
     một từ lẻ nằm chỏng chơ càng lộ. Trình duyệt cũ không hiểu thì bỏ qua, chữ
     vẫn xuống dòng bình thường — không hỏng gì. Trang chủ đã dùng cách này.
     ⚠️ Chỉ đặt cho TIÊU ĐỀ. Đặt cho đoạn văn dài là trình duyệt bỏ qua (quá 6 dòng)
        mà lại tốn công tính. */

  /* Tiêu đề IN HOA tiếng Việt cần dòng thưa hơn tiếng Anh — dấu trên chữ HOA đội
     lên rất cao, nhất là chữ chồng 2 dấu (Ề = mũ + huyền, Ữ = móc + ngã).
     ĐO THẬT trên Montserrat 800: chiều cao mực của "ỀỮỔẤ" = 1.27 lần cỡ chữ.
     Để 1.18 như tiếng Anh là dấu dòng dưới ĐÂM LÊN dòng trên (thiếu 5px).
     1.34 cho dư ~3px — vẫn khít và mạnh, mà không đè nhau.
     ⚠️ Hạ số này xuống dưới 1.30 là vỡ chữ. */
  --dong-hoa:1.34;
}

/* ═══ NỀN TRANG + CHỮ ═══ */
body{
  font-family:var(--font);
  font-size:17px;
  line-height:1.7;
  background-color:var(--den);
  background-image:
    radial-gradient(ellipse 900px 620px at 12% 2%,var(--sen-mo),transparent 66%),
    radial-gradient(ellipse 760px 520px at 92% 34%,rgba(179,0,79,.10),transparent 70%);
  background-attachment:fixed;
  color:var(--trang-diu);
}
a{color:var(--sen)}
::selection{background:var(--sen);color:#fff}

/* ═══ THANH ĐIỀU HƯỚNG ═══ */
.nav{background:rgba(5,5,7,.92);border-bottom:1px solid var(--vien);box-shadow:0 2px 20px rgba(0,0,0,.6);backdrop-filter:blur(8px)}
.brand-script{color:var(--sen)}
.logo .moon,.logo-coach{color:var(--sen)}
.nav-links a,.nav-top{color:var(--trang-diu)}
.nav-links a:hover,.nav-top:hover{color:var(--sen)}
.hamb span{background:var(--trang-diu)}
.submenu{background:var(--den-2);border:1px solid var(--vien-manh);box-shadow:0 20px 44px rgba(0,0,0,.7)}
.submenu a{color:var(--trang-diu)}
.submenu a:hover{background:rgba(255,45,126,.14);color:var(--sen)}
.submenu a small{color:var(--xam)}
@media(max-width:720px){
  .nav-links{background:var(--den-2);border-bottom:1px solid var(--vien);box-shadow:0 10px 26px rgba(0,0,0,.6)}
  .submenu a{color:var(--xam)}
}

/* ═══ KHỐI DÙNG CHUNG ═══ */
.v-wrap{max-width:1160px;margin:0 auto;padding:0 24px}
/* Không dùng gạch ngang trang trí hai bên — chị Hằng bỏ ngày 07/08/2026. */
.v-eyebrow{display:flex;align-items:center;color:var(--sen);font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:.82rem;margin-bottom:22px}
.v-eyebrow.center{justify-content:center}

.v-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:15px 30px;border-radius:6px;font-weight:700;font-size:.92rem;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;transition:transform .15s,background .2s,border-color .2s,color .2s,box-shadow .2s;white-space:nowrap}
.v-btn-sen{background:var(--sen-nut);color:#fff;box-shadow:0 12px 30px rgba(255,45,126,.32)}
.v-btn-sen:hover{transform:translateY(-2px);background:var(--sen);box-shadow:0 16px 38px rgba(255,45,126,.46)}
.v-btn-line{background:transparent;border-color:rgba(255,255,255,.28);color:var(--trang)}
.v-btn-line:hover{border-color:var(--sen);color:var(--sen);background:rgba(255,45,126,.09)}

/* Nút play tròn dùng chung */
.v-play{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(5,5,7,.6);border:2px solid var(--sen);backdrop-filter:blur(3px);transition:transform .2s,background .2s,box-shadow .2s}
.v-play::before{content:"";border-left:15px solid var(--sen);border-top:10px solid transparent;border-bottom:10px solid transparent;margin-left:4px}

/* ═══ 1 · MỞ ĐẦU ═══ */
.vhero{position:relative;overflow:hidden;background:linear-gradient(155deg,#120A11 0%,#08070A 48%,#050507 100%);padding:78px 0 84px;border-bottom:1px solid var(--vien)}
.vhero::before{content:"🌙";position:absolute;font-size:20rem;line-height:1;opacity:.05;right:-40px;top:-70px;pointer-events:none}
.vhero::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 780px 480px at 10% 6%,rgba(255,45,126,.20),transparent 66%);pointer-events:none}
.vhero-inner{position:relative;z-index:1;display:grid;grid-template-columns:1.02fr .98fr;gap:56px;align-items:center}
.vhero h1{font-family:var(--font);font-weight:800;text-transform:uppercase;font-size:clamp(2.05rem,4.5vw,3.5rem);line-height:var(--dong-hoa);letter-spacing:-.005em;margin:0 0 24px}
.vhero h1 .l1,.vhero h1 .sen{text-wrap:balance}
.vhero h1 .l1{display:block;color:var(--trang)}
.vhero h1 .sen{display:block;background:linear-gradient(100deg,#FF74AE 0%,var(--sen) 46%,#C4005E 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.vhero p{color:var(--xam);font-size:1.06rem;max-width:520px;margin:0}

.vfeat{position:relative;display:block;aspect-ratio:16/9;border-radius:14px;overflow:hidden;border:1px solid rgba(255,45,126,.32);background:linear-gradient(140deg,#2C0C22,#140A15 58%,#220C2C);box-shadow:0 26px 64px rgba(0,0,0,.7),0 0 0 1px rgba(255,45,126,.08);text-decoration:none}
.vfeat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:0}
.vfeat .v-play{width:82px;height:82px;left:50%;top:50%;transform:translate(-50%,-50%)}
.vfeat:hover .v-play{transform:translate(-50%,-50%) scale(1.08);background:rgba(255,45,126,.28);box-shadow:0 0 34px rgba(255,45,126,.45)}
.vfeat-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:24px 26px 20px;background:linear-gradient(to top,rgba(3,2,4,.95),transparent)}
.vfeat-cap .tag{display:block;color:var(--sen);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:6px}
.vfeat-cap .ttl{font-family:var(--font);color:var(--trang);font-size:1.06rem;font-weight:700;text-transform:uppercase;line-height:1.4;letter-spacing:-.005em}

/* ═══ 2 · BĂNG ĐĂNG KÝ KÊNH ═══ */
.subband{background:var(--den-2);border-top:1px solid var(--vien);border-bottom:1px solid var(--vien);padding:56px 0}
.subband-inner{display:grid;grid-template-columns:1fr auto;gap:44px;align-items:center}
.yt-badge{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--sen-tham);background:rgba(255,45,126,.08);color:var(--sen);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:9px 16px;border-radius:5px;margin-bottom:20px}
.yt-badge .yt-ic{display:inline-flex;align-items:center;justify-content:center;width:24px;height:17px;border-radius:4px;background:var(--sen-nut);flex:none}
.yt-badge .yt-ic::before{content:"";border-left:7px solid #fff;border-top:4.5px solid transparent;border-bottom:4.5px solid transparent;margin-left:1px}
.subband h2{font-family:var(--font);font-weight:800;text-transform:uppercase;font-size:clamp(1.45rem,3vw,2.1rem);line-height:var(--dong-hoa);letter-spacing:-.005em;text-wrap:balance;color:var(--trang);margin:0 0 14px;max-width:30ch}
/* 30ch: đủ rộng cho tiêu đề dài mà vẫn không kéo dài quá một hơi đọc.
   Để 18ch như lúc tiêu đề còn ngắn thì chữ bị bó lại, vỡ thành 4 dòng
   trong khi cột còn thừa gần một nửa chỗ trống. */
.subband p{color:var(--xam);max-width:560px;margin:0;font-size:1.02rem}
.sub-actions{display:flex;flex-direction:column;gap:12px;min-width:250px}

/* ═══ 3 · LƯỚI DANH SÁCH PHÁT ═══ */
.plsec{padding:82px 0 78px}
.plsec-head{display:grid;grid-template-columns:1fr .82fr;gap:40px;align-items:end;margin-bottom:46px}
.plsec-head h2{font-family:var(--font);font-weight:800;text-transform:uppercase;font-size:clamp(1.55rem,3.2vw,2.3rem);line-height:var(--dong-hoa);letter-spacing:-.005em;text-wrap:balance;color:var(--trang);margin:0;max-width:17ch}
.plsec-head p{color:var(--xam);text-align:right;margin:0;font-size:1.02rem}
.pl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.pl-card{display:flex;flex-direction:column;background:var(--den-2);border:1px solid var(--vien);border-radius:16px;overflow:hidden;scroll-margin-top:92px;transition:transform .18s,box-shadow .2s,border-color .2s}
.pl-card:hover{transform:translateY(-4px);border-color:var(--sen-tham);box-shadow:0 22px 50px rgba(0,0,0,.7),0 0 0 1px rgba(255,45,126,.16)}

/* Ô ảnh là thẻ <a> khi playlist đã có link (bấm cả ô, không chỉ chữ ở chân thẻ),
   là <div> khi chưa có. text-decoration:none để trình duyệt khỏi gạch chân. */
.pl-thumb{position:relative;aspect-ratio:16/9;background:linear-gradient(140deg,var(--pl-a,#2A0F22),var(--pl-b,#3D1430));display:flex;align-items:center;justify-content:center;overflow:hidden;text-decoration:none}
/* Ảnh YouTube 4:3 (hqdefault) có viền đen trên dưới; object-fit:cover cắt bỏ
   đúng phần viền đó, còn lại khít khung 16:9. Ảnh 16:9 (maxresdefault) vừa sẵn. */
.pl-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:0}
/* Lớp phủ tối: ảnh thật sáng hơn nền trang nhiều, không phủ thì nhãn PLAYLIST
   và nút play chìm vào ảnh. Rê chuột thì lớp phủ nhạt đi, ảnh sáng lên. */
.pl-thumb::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(165deg,rgba(5,5,7,.52),rgba(5,5,7,.18) 46%,rgba(48,15,38,.58));
  transition:opacity .2s}
.pl-card:hover .pl-thumb::after{opacity:.55}
.pl-thumb .pl-tag,.pl-thumb .v-play{z-index:2}
.pl-ic{position:relative;z-index:2;font-size:3.1rem;opacity:.66}
.pl-tag{position:absolute;top:14px;left:14px;z-index:2;display:inline-flex;align-items:center;gap:7px;background:rgba(5,5,7,.84);border:1px solid var(--vien-manh);color:var(--trang);font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:6px 11px;border-radius:4px}
.pl-tag::before{content:"";width:11px;height:9px;flex:none;background:
   linear-gradient(var(--sen),var(--sen)) 0 0/11px 2px no-repeat,
   linear-gradient(var(--sen),var(--sen)) 0 3.5px/11px 2px no-repeat,
   linear-gradient(var(--sen),var(--sen)) 0 7px/7px 2px no-repeat}
.pl-thumb .v-play{width:52px;height:52px;right:14px;bottom:14px}
.pl-thumb .v-play::before{border-left-width:11px;border-top-width:7px;border-bottom-width:7px;margin-left:3px}
.pl-card:hover .v-play{transform:scale(1.08);background:rgba(255,45,126,.28);box-shadow:0 0 24px rgba(255,45,126,.4)}

.pl-body{padding:24px 26px 4px;flex:1;display:flex;flex-direction:column}
.pl-kicker{display:flex;align-items:center;gap:11px;color:var(--sen);font-size:.72rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;margin-bottom:12px}
.pl-num{color:var(--trang);font-size:.78rem;font-weight:600;letter-spacing:.08em}
.pl-card h3{font-family:var(--font);font-weight:800;text-transform:uppercase;font-size:1.16rem;line-height:1.45;text-wrap:balance;letter-spacing:-.005em;color:var(--trang);margin:0 0 12px}   /* 1.45: cỡ chữ nhỏ nên cần tỉ lệ dòng rộng hơn --dong-hoa mới đủ chỗ cho dấu */
.pl-card p{color:var(--xam);font-size:.94rem;line-height:1.62;margin:0 0 20px;flex:1}
.pl-foot{border-top:1px solid var(--vien);margin:0 26px;padding:16px 0 22px}
.pl-go{display:inline-flex;align-items:center;justify-content:space-between;width:100%;color:var(--sen);font-size:.82rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;text-decoration:none}
.pl-go span{transition:transform .18s}
.pl-card:hover .pl-go{color:var(--sen-sang)}
.pl-card:hover .pl-go span{transform:translateX(5px)}
.pl-soon{display:inline-block;color:var(--xam);font-size:.8rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.pl-card.is-soon .pl-go{display:none}
.pl-card:not(.is-soon) .pl-soon{display:none}

/* ═══ 4 · KÊU GỌI CUỐI ═══ */
.vcta{position:relative;overflow:hidden;background:linear-gradient(155deg,#100910 0%,#07060A 55%,#050507 100%);padding:88px 0 92px;text-align:center;border-top:1px solid var(--vien)}
.vcta::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 900px 460px at 50% 0%,rgba(255,45,126,.20),transparent 68%);pointer-events:none}
.vcta-inner{position:relative;z-index:1;max-width:760px;margin:0 auto;padding:0 24px}
/* Tiêu đề đan xen trắng–hồng: dòng mời gọi để trắng, vế đích đến tô hồng.
   Màu đặt trên từng <span> chứ không trên cả h2, vì tô chữ bằng chuyển sắc
   phải cắt nền theo đúng khối chữ đó — đặt trên h2 thì cả khối chung một dải. */
.vcta h2{font-family:var(--font);font-weight:900;text-transform:uppercase;font-size:clamp(1.8rem,4vw,3rem);line-height:var(--dong-hoa);letter-spacing:-.005em;margin:0 0 20px;color:var(--trang)}
.vcta h2 .l1,.vcta h2 .sen{display:block;text-wrap:balance}
.vcta h2 .l1{color:var(--trang)}
.vcta h2 .sen{background:linear-gradient(100deg,#FF74AE 0%,var(--sen) 46%,#C4005E 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.vcta p{color:var(--xam);font-size:1.06rem;max-width:560px;margin:0 auto 34px}
.vcta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ═══ 5 · KHỐI NHẬN THƯ ═══ */
.vmail{max-width:640px;margin:60px auto 10px;padding:30px 26px;border:1px solid var(--vien-manh);border-radius:16px;background:var(--den-2);text-align:center}
/* Khối nhận thư — nội dung chị Hằng chốt 21/08/2026. Hai ô Tên + Email cùng một
   hàng (.vmail-hang), nút chạy hết bề ngang bên dưới. Màn hẹp thì hai ô tự tách
   thành hai dòng nhờ flex-wrap, không cần thêm media query. */
.vmail-eyebrow{font-size:.84rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--sen);margin-bottom:8px}
.vmail-title{font-family:var(--font);font-size:1.26rem;font-weight:800;text-transform:uppercase;letter-spacing:-.005em;line-height:1.28;color:var(--trang);margin-bottom:10px}
.vmail-sub{margin:0 0 18px;font-size:.97rem;color:var(--xam);line-height:1.62}
.vmail form{display:flex;flex-direction:column;gap:11px;max-width:470px;margin:0 auto}
.vmail-hang{display:flex;gap:10px;flex-wrap:wrap}
.vmail-hang input{flex:1 1 190px;min-width:0}
.vmail input[type=text],.vmail input[type=email]{padding:13px 15px;border:1px solid var(--vien-manh);border-radius:10px;font-size:.97rem;font-family:inherit;background:var(--den-3);color:var(--trang)}
.vmail input::placeholder{color:#6C6577}
.vmail input:focus{outline:none;border-color:var(--sen)}
.vmail-agree{display:flex;gap:9px;align-items:flex-start;text-align:left;font-size:.84rem;color:var(--xam);line-height:1.55;cursor:pointer}
.vmail-agree input{margin-top:3px;accent-color:var(--sen)}
.vmail button{padding:15px;border:0;border-radius:12px;font-weight:700;font-size:.97rem;letter-spacing:.04em;text-transform:uppercase;font-family:inherit;cursor:pointer;background:var(--sen-nut);color:#fff;transition:background .2s}
.vmail button:hover{background:var(--sen)}
.vmail .bt-msg{font-size:.86rem;min-height:18px}
.vmail-done{font-size:1rem;font-weight:600;color:var(--trang)}

/* ═══ CHÂN TRANG ═══ */
footer{background:var(--den-2);border-top:1px solid var(--vien)}
.foot-sign{color:var(--xam)}
/* Khẩu hiệu thay cho chữ ký cũ — chị Hằng chốt ngày 07/08/2026.
   Đè bản kem trong post.css: nền đen nên dùng Montserrat nghiêng + hồng cánh sen. */
.foot-slogan{display:block;font-family:var(--font);font-style:italic;font-weight:600;font-size:1.22rem;letter-spacing:.005em;color:var(--sen);margin-bottom:6px}
/* Chữ ký viết tay: ảnh gốc là MỰC ĐEN nền trong suốt — đặt thẳng lên nền đen
   là mất hút hoàn toàn. invert(1) lật đen thành trắng, thành nét bút trắng
   trên nền đen. Chỉ dùng được vì ảnh chỉ có một màu mực. */
.sign-img{filter:invert(1)}
.foot-copy{color:#918A9D}   /* đủ sáng để đọc trên nền đen (5.7:1) mà vẫn lùi về sau */

/* ═══ MÀN NHỎ ═══ */
@media(max-width:980px){
  .pl-grid{grid-template-columns:repeat(2,1fr);gap:24px}
}
@media(max-width:900px){
  .vhero{padding:60px 0 64px}
  .vhero-inner{grid-template-columns:1fr;gap:38px}
  .vhero p{max-width:none}
  .subband-inner{grid-template-columns:1fr;gap:28px}
  .sub-actions{flex-direction:row;flex-wrap:wrap;min-width:0}
  .subband h2,.plsec-head h2{max-width:none}
  .plsec-head{grid-template-columns:1fr;gap:16px;align-items:start;margin-bottom:36px}
  .plsec-head p{text-align:left}
}
@media(max-width:640px){
  .v-wrap{padding:0 20px}
  .vhero h1{font-size:clamp(1.7rem,7vw,2.15rem)}
  .plsec{padding:56px 0 54px}
  .pl-grid{grid-template-columns:1fr}
  .vcta{padding:64px 0 66px}
  .v-btn{width:100%;padding:14px 22px}
  .sub-actions{flex-direction:column}
  .vcta-actions .v-btn{width:100%}
  .vfeat .v-play{width:64px;height:64px}
  .vmail{margin:40px 20px 10px;padding:26px 20px}
}
