/* ---------------------------------- 1. Biến chung (CSS Variables) -----------------------------------*/ :root { --primary: #ff3366; --secondary: #ff4d88; --bg-start: #fce4ec; --bg-end: #f3e5f5; --card-bg: #fff0f5; --shadow: rgba(0, 0, 0, 0.05); --radius: 15px; --fast: 0.2s; } /* ---------------------------------- 2. Reset & Base -----------------------------------*/ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } body { background: linear-gradient(to right, var(--bg-start), var(--bg-end)); font-family: 'Quicksand', sans-serif; color: #333; display: flex; justify-content: center; align-items: center; min-height: 100vh; padding: 10px; overflow-x: hidden; } /* ---------------------------------- 3. Wrapper & Typography -----------------------------------*/ .wrapper { background: var(--card-bg); border-radius: var(--radius); box-shadow: 0 2px 8px var(--shadow); text-align: center; width: 100%; max-width: 1100px; padding: 20px; } h1 { color: var(--secondary); font-size: 2.5rem; margin-bottom: 1rem; transition: transform var(--fast), color var(--fast); } h1:hover { transform: scale(1.1); color: var(--primary); } /* ---------------------------------- 4. Buttons (gộp chung .btn) -----------------------------------*/ button, .btn { background: var(--primary); color: #fff; border: none; border-radius: 25px; cursor: pointer; font: inherit; padding: 0.5rem 1rem; box-shadow: 0 2px 4px var(--shadow); transition: background var(--fast), transform var(--fast); } button:disabled { background: #ccc; cursor: not-allowed; } button:hover:not(:disabled), .btn:hover { background: #e62e58; transform: scale(1.03); } /* ---------------------------------- 5. Đồng hồ & Ngày tháng -----------------------------------*/ .clock { background: #ffe5ec; border: 2px solid #ffb6c1; border-radius: 30px; padding: 1rem 2rem; box-shadow: 0 2px 8px var(--shadow); text-align: center; transition: transform var(--fast); } .clock:hover { transform: scale(1.02); } .clock time { font-size: 1.5rem; font-weight: bold; color: var(--primary); } /* ---------------------------------- 6. Info Grid (avatar + tên) -----------------------------------*/ .info { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); } .info img { width: 100px; height: 100px; border-radius: 50%; object-fit: cover; transition: transform var(--fast); } .info img:hover { transform: scale(1.1); } .info p { font-weight: bold; font-size: 1rem; } /* ---------------------------------- 7. Video List (đơn giản hóa) -----------------------------------*/ .video-list { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; } .video-item { background: var(--card-bg); border-radius: 20px; overflow: hidden; transition: transform var(--fast), box-shadow var(--fast); flex: 1 1 200px; max-width: 400px; } .video-item:hover { transform: scale(1.03); box-shadow: 0 4px 12px var(--shadow); } /* ---------------------------------- 8. Utility -----------------------------------*/ .hidden { display: none !important; } /* ---------------------------------- 9. Mobile-First Responsive -----------------------------------*/ @media (min-width: 769px) { .wrapper { padding: 30px; } h1 { font-size: 3rem; } }