* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Microsoft Yahei", system-ui, sans-serif;
}
:root {
    --main: #a855f7;
    --main-dark: #7e22ce;
    --main-light: #c084fc;
    --bg: #0e101a;
    --card-bg: rgba(30, 22, 48, 0.58);
    --border: rgba(168, 85, 247, 0.28);
    --text: #e8edf3;
    --text-secondary: #94a3b8;
}
body {
    background: var(--bg);
    color: var(--text);
    padding: 40px 20px;
    max-width: 1020px;
    margin: 0 auto;
    background-image: radial-gradient(circle at top, #2c1f47 0%, var(--bg) 70%);
    min-height: 100vh;
}
h1 {
    text-align: center;
    font-size: 2.8rem;
    margin-bottom: 12px;
    color: var(--main-light);
    text-shadow: 0 0 14px #a855f766;
}
.subtitle {
    text-align: center;
    color: var(--text-secondary);
    margin-bottom: 48px;
}
.server-card,
.qq-group-card,
.file-card,
.tutorial-box,
.warn-box {
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-radius: 18px;
    border: 1px solid var(--border);
    transition: all 0.34s cubic-bezier(0.22, 1, 0.36, 1);
    position: relative;
    overflow: hidden;
}
.server-card::before,
.qq-group-card::before,
.file-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 60%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.07), transparent);
    transition: left 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.server-card:hover::before,
.qq-group-card:hover::before,
.file-card:hover::before {
    left: 120%;
}
.server-card:hover,
.qq-group-card:hover,
.file-card:hover {
    transform: translateY(-4px);
    border-color: rgba(192, 132, 252, 0.52);
    box-shadow: 0 12px 32px rgba(168, 85, 247, 0.16);
}
.server-card {
    background: var(--card-bg);
    padding: 28px;
    margin-bottom: 24px;
}
.title-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}
.tag-java {
    background: #7c3aed;
    padding: 6px 14px;
    border-radius: 8px;
    font-weight: bold;
}
.tag-be {
    background: #8b5cf6;
    padding: 6px 14px;
    border-radius: 8px;
    font-weight: bold;
}
.version-tag {
    display: inline-block;
    background: rgba(168, 85, 247, 0.14);
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 0.85rem;
    color: var(--main-light);
    margin-left: 8px;
}
.status-dot {
    width:12px;
    height:12px;
    border-radius:50%;
    display:inline-block;
    margin-right:6px;
    transition: all 0.3s ease;
}
.online {background:#22c55e;box-shadow:0 0 8px #22c55e88;}
.offline {background:#ef4444;box-shadow:0 0 8px #ef444477;}
.loading {background:#f59e0b;box-shadow:0 0 8px #f59e0b77;}

.ip-wrap {
    display:flex;
    gap:10px;
    margin:14px 0;
}
.ip-box {
    flex-grow:1;
    background:rgba(14, 9, 24, 0.55);
    padding:14px 18px;
    border-radius:10px;
    font-family:Consolas,monospace;
    font-size:1.05rem;
    border:1px solid rgba(168, 85, 247, 0.18);
}
.copy-btn {
    padding:0 20px;
    background: var(--main);
    border:none;
    color:white;
    border-radius:10px;
    cursor:pointer;
    transition: all 0.24s cubic-bezier(0.22, 1, 0.36, 1);
}
.copy-btn:hover {
    background: var(--main-dark);
    transform: scale(1.05);
}
.copy-btn:active {
    transform: scale(0.96);
}
.info-row {
    margin-top:12px;
    color:var(--text-secondary);
    line-height:1.7;
}
.motd-box {
    margin-top: 12px;
    background: rgba(14, 9, 24, 0.55);
    padding: 12px 16px;
    border-radius: 10px;
    border: 1px solid rgba(168, 85, 247, 0.18);
    color: #cbd5e1;
}
.motd-label {
    font-size: 0.85rem;
    color: #7c8ba3;
    margin-bottom:4px;
}

.section-title {
    font-size:1.4rem;
    margin:40px 0 18px;
    color:var(--main-light);
}

/* QQ群 */
.qq-group-card {
    background: var(--card-bg);
    padding: 24px;
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 24px;
}
.qq-group-icon {
    font-size: 2.4rem;
    flex-shrink: 0;
}
.qq-group-info h3 {
    color: var(--text);
    font-size: 1.1rem;
    margin-bottom:6px;
}
.qq-group-info p {
    color: var(--text-secondary);
    font-size:0.86rem;
    line-height:1.5;
    margin-bottom:8px;
}
.qq-group-meta {
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}
.qq-group-meta span {
    font-size:0.76rem;
    color:#7c8ba3;
    background:rgba(14,9,24,0.45);
    padding:3px 8px;
    border-radius:6px;
}
.qq-join-btn {
    padding:11px 20px;
    background: var(--main);
    color:#fff;
    text-decoration:none;
    border-radius:10px;
    font-weight:500;
    white-space:nowrap;
    transition: all 0.24s cubic-bezier(0.22,1,0.36,1);
}
.qq-join-btn:hover {
    background: var(--main-dark);
    transform:scale(1.05);
}
.qq-join-btn:active {
    transform:scale(0.96);
}

/* 文件板块 */
.files-wrap {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
    margin-bottom: 24px;
}
.file-card {
   