/* CSS dùng chung cho toàn bộ site VPath — xem DESIGN_SYSTEM.md để biết quy tắc thiết kế. */

.reveal { opacity: 0; transform: translateY(16px); transition: opacity 0.5s ease-out, transform 0.5s ease-out; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

.label { letter-spacing: 0.1em; }

/* Gạch chân tay vẽ cho từ khóa trong H1 — thay cho gradient-text kiểu SaaS */
.hand-underline { position: relative; white-space: nowrap; }
.hand-underline::after {
    content: '';
    position: absolute;
    left: -2px; right: -4px; bottom: 0.02em;
    height: 0.3em;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 16' preserveAspectRatio='none'%3E%3Cpath d='M2 11 C 40 4, 80 14, 100 8 S 160 3, 198 9' stroke='%23C08A2E' stroke-width='5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
    z-index: -1;
}

/* Vân chấm mờ cho khối nền tối, thay cho blob gradient */
.grain-dark {
    background-image: radial-gradient(rgba(255,255,255,0.06) 1px, transparent 1px);
    background-size: 18px 18px;
}

/* Tông ảnh đồng nhất theo màu navy — thay cho ảnh stock rời rạc mỗi ảnh một tông màu khác nhau.
   Cách dùng: bọc <img> trong 1 container "relative" có thêm class "brand-photo". */
.brand-photo img { filter: grayscale(30%) contrast(1.05); }
.brand-photo::after {
    content: '';
    position: absolute; inset: 0;
    background: #16324F;
    mix-blend-mode: color;
    opacity: 0.28;
    pointer-events: none;
}

/* Linh vật hoạt hình (mascot) — dùng chung nếu xuất hiện ở nhiều trang.
   .mascot-bounce: bập bênh nhẹ toàn thân. .mascot-point: tay chỉ lắc lư liên tục để hút mắt xuống nút bên dưới. */
@keyframes mascot-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}
.mascot-bounce { animation: mascot-bounce 2.6s ease-in-out infinite; transform-origin: center bottom; }

@keyframes mascot-point {
    0%, 100% { transform: rotate(0deg) translateY(0); }
    50% { transform: rotate(6deg) translateY(4px); }
}
/* transform-box: fill-box + 0% 0% neo gốc xoay vào góc trên-trái của chính path cánh tay (đúng vị trí bả vai)
   thay vì toạ độ pixel cố định — không lệch dù SVG được scale/hiển thị ở kích thước khác. */
.mascot-point { animation: mascot-point 1.3s ease-in-out infinite; transform-box: fill-box; transform-origin: 0% 0%; }
