/* ====================================
 * 基础重置与排版 (Base & Typography)
 * ==================================== */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
    font-family: var(--font-family-main);
    color: var(--color-text-primary);
    background-color: var(--color-background);
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    background: radial-gradient(circle at 10% 0%, rgba(16, 52, 94, 0.95), rgba(9, 20, 34, 0.95) 45%, rgba(5, 10, 22, 0.98));
}

body.menu-open {
    overflow: hidden;
}

a {
    color: var(--color-accent);
    text-decoration: none;
    transition: color 0.3s ease, opacity 0.3s ease;
}

a:hover {
    color: var(--color-white);
    opacity: 0.85;
}

h1, h2, h3, h4, h5, h6 {
    margin-bottom: var(--spacing-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    letter-spacing: 0.02em;
}

h1 { font-size: clamp(2.8rem, 5vw, 3.6rem); }
h2 { font-size: clamp(2.2rem, 4vw, 2.9rem); }
h3 { font-size: clamp(1.6rem, 3.2vw, 2.1rem); }
h4 { font-size: clamp(1.3rem, 2.6vw, 1.6rem); }

p {
    margin-bottom: var(--spacing-md);
    color: var(--color-text-secondary);
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

ul {
    list-style: none;
    padding-left: 0;
}

button {
    font-family: inherit;
    border: none;
    background: none;
}

/* ====================================
 * 布局系统 (Layout System)
 * ==================================== */
.container {
    width: 100%;
    max-width: var(--max-content-width);
    margin: 0 auto;
    padding: 0 var(--spacing-lg);
}

.row {
    display: flex;
    flex-wrap: wrap;
    margin-left: calc(-1 * var(--grid-gap) / 2);
    margin-right: calc(-1 * var(--grid-gap) / 2);
}

.col {
    padding-left: calc(var(--grid-gap) / 2);
    padding-right: calc(var(--grid-gap) / 2);
    position: relative;
}

.col-1, .col-2, .col-3, .col-4, .col-5, .col-6,
.col-7, .col-8, .col-9, .col-10, .col-11, .col-12 {
    width: 100%;
}

@media (min-width: 768px) {
    .col-md-1 { width: 12.5%; }
    .col-md-2 { width: 25%; }
    .col-md-3 { width: 37.5%; }
    .col-md-4 { width: 50%; }
    .col-md-5 { width: 62.5%; }
    .col-md-6 { width: 75%; }
    .col-md-7 { width: 87.5%; }
    .col-md-8 { width: 100%; }
}

@media (min-width: 1200px) {
    .col-lg-1 { width: 8.3333%; }
    .col-lg-2 { width: 16.6667%; }
    .col-lg-3 { width: 25%; }
    .col-lg-4 { width: 33.3333%; }
    .col-lg-5 { width: 41.6667%; }
    .col-lg-6 { width: 50%; }
    .col-lg-7 { width: 58.3333%; }
    .col-lg-8 { width: 66.6667%; }
    .col-lg-9 { width: 75%; }
    .col-lg-10 { width: 83.3333%; }
    .col-lg-11 { width: 91.6667%; }
    .col-lg-12 { width: 100%; }
}

/* ====================================
 * 动画工具类 (Animation Helpers)
 * ==================================== */
.fade-in {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}
