/* ===== Template 015: 深蓝极客专业影视工具站 ===== */
:root {
    --gk-bg: #0A0E1A;
    --gk-bg-2: #0F1525;
    --gk-bg-3: #161D30;
    --gk-bg-4: #1E2740;
    --gk-border: #1E2A4A;
    --gk-border-l: #2A3A5E;
    --gk-cyan: #22D3EE;
    --gk-cyan-dim: #0891B2;
    --gk-green: #34D399;
    --gk-green-dim: #059669;
    --gk-pink: #F472B6;
    --gk-purple: #A78BFA;
    --gk-yellow: #FBBF24;
    --gk-red: #F87171;
    --gk-text: #E2E8F0;
    --gk-text-dim: #94A3B8;
    --gk-text-mute: #64748B;
    --gk-white: #F8FAFC;
    --gk-mono: 'JetBrains Mono', 'Fira Code', Consolas, monospace;
    --gk-radius: 8px;
    --gk-radius-lg: 12px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: 'Noto Sans SC', -apple-system, sans-serif;
    background: var(--gk-bg); color: var(--gk-text);
    line-height: 1.7; font-size: 15px;
}
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
code, kbd { font-family: var(--gk-mono); }

.geek-container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }

/* ===== 导航 ===== */
.geek-header {
    position: sticky; top: 0; z-index: 100;
    background: rgba(10,14,26,0.85);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--gk-border);
}
.geek-nav {
    display: flex; align-items: center; justify-content: space-between;
    height: 64px;
}
.geek-logo {
    display: flex; align-items: center; gap: 8px;
    font-weight: 700; font-size: 18px;
}
.gk-logo-icon {
    color: var(--gk-cyan);
    width: 36px; height: 36px; border-radius: var(--gk-radius);
    background: var(--gk-bg-3); border: 1px solid var(--gk-border-l);
    display: flex; align-items: center; justify-content: center;
}
.gk-logo-text { color: var(--gk-white); }
.gk-logo-badge {
    font-family: var(--gk-mono); font-size: 10px;
    padding: 2px 6px; border-radius: 4px;
    background: var(--gk-bg-4); color: var(--gk-cyan);
    border: 1px solid var(--gk-cyan-dim);
}
.gk-links { display: flex; gap: 2px; }
.gk-link {
    padding: 8px 14px; border-radius: var(--gk-radius);
    font-size: 13px; font-weight: 500; color: var(--gk-text-dim);
    font-family: var(--gk-mono); font-size: 12px;
    transition: all 0.2s;
}
.gk-link:hover { color: var(--gk-cyan); background: var(--gk-bg-3); }
.gk-link.active { color: var(--gk-cyan); background: rgba(34,211,238,0.08); }
.gk-actions { display: flex; align-items: center; gap: 12px; }
.gk-tel {
    display: flex; align-items: center; gap: 6px;
    padding: 8px 16px; border-radius: var(--gk-radius);
    background: var(--gk-bg-3); border: 1px solid var(--gk-border-l);
    color: var(--gk-cyan); font-family: var(--gk-mono);
    font-size: 12px; font-weight: 500; transition: all 0.2s;
}
.gk-tel:hover { border-color: var(--gk-cyan); background: rgba(34,211,238,0.08); }
.gk-hamburger {
    display: none; flex-direction: column; gap: 4px;
    padding: 8px;
}
.gk-hamburger span {
    width: 20px; height: 2px; background: var(--gk-text);
    border-radius: 2px;
}

/* 抽屉 */
.gk-drawer {
    position: fixed; top: 0; right: -320px; z-index: 200;
    width: 300px; height: 100vh; background: var(--gk-bg-2);
    border-left: 1px solid var(--gk-border);
    transition: right 0.3s ease;
}
.gk-drawer.open { right: 0; }
.gk-drawer-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 20px; border-bottom: 1px solid var(--gk-border);
    font-family: var(--gk-mono); font-weight: 700; font-size: 15px;
    color: var(--gk-cyan);
}
.gk-drawer-head button {
    width: 32px; height: 32px; border-radius: var(--gk-radius);
    background: var(--gk-bg-3); color: var(--gk-text); font-size: 14px;
}
.gk-drawer-links {
    padding: 16px; display: flex; flex-direction: column; gap: 4px;
}
.gk-drawer-links a {
    padding: 12px 14px; border-radius: var(--gk-radius);
    font-size: 14px; font-family: var(--gk-mono);
    color: var(--gk-text-dim); transition: all 0.2s;
}
.gk-drawer-links a:hover { color: var(--gk-cyan); background: var(--gk-bg-3); }
.gk-drawer-mask {
    position: fixed; inset: 0; z-index: 199;
    background: rgba(0,0,0,0.6); opacity: 0;
    pointer-events: none; transition: opacity 0.3s;
}
.gk-drawer-mask.show { opacity: 1; pointer-events: all; }

/* ===== Hero ===== */
.gk-hero {
    padding: 60px 0 80px; position: relative;
    background: linear-gradient(180deg, var(--gk-bg), var(--gk-bg-2));
    overflow: hidden;
}
.gk-hero::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gk-cyan), transparent);
}
.gk-hero::after {
    content: ''; position: absolute; top: 20%; right: -200px;
    width: 500px; height: 500px; border-radius: 50%;
    background: radial-gradient(circle, rgba(34,211,238,0.08), transparent 70%);
    pointer-events: none;
}
.gh-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 60px;
    align-items: center;
}
.gh-term-line {
    font-family: var(--gk-mono); font-size: 13px;
    margin-bottom: 8px;
}
.gh-term-prompt { color: var(--gk-green); margin-right: 8px; }
.gh-term-cmd { color: var(--gk-cyan); }
.gh-term-resp { color: var(--gk-text-dim); }
.gh-term-cursor {
    display: inline-block; width: 8px; height: 16px;
    background: var(--gk-cyan); margin-left: 4px;
    animation: gkBlink 1s step-end infinite; vertical-align: middle;
}
@keyframes gkBlink {
    0%, 50% { opacity: 1; }
    51%, 100% { opacity: 0; }
}
.gh-title {
    font-size: 44px; font-weight: 900; line-height: 1.2;
    color: var(--gk-white); margin: 24px 0 20px;
}
.gh-accent { color: var(--gk-cyan); }
.gh-desc { font-size: 15px; color: var(--gk-text-dim); line-height: 1.8; margin-bottom: 32px; max-width: 500px; }
.gh-ctas { display: flex; gap: 12px; margin-bottom: 36px; }
.gk-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 8px; padding: 12px 24px; border-radius: var(--gk-radius);
    font-family: var(--gk-mono); font-size: 13px; font-weight: 600;
    transition: all 0.25s; cursor: pointer; position: relative; overflow: hidden;
}
.gk-btn-primary {
    background: var(--gk-cyan); color: var(--gk-bg);
    border: 1px solid var(--gk-cyan);
}
.gk-btn-primary:hover { background: #67E8F9; transform: translateY(-2px); box-shadow: 0 6px 20px rgba(34,211,238,0.3); }
.gk-btn-ghost {
    background: transparent; color: var(--gk-text-dim);
    border: 1px solid var(--gk-border-l);
}
.gk-btn-ghost:hover { border-color: var(--gk-cyan); color: var(--gk-cyan); }
.gk-btn-sm { padding: 8px 16px; font-size: 12px; }
.gk-btn-block { width: 100%; }
.gk-btn-shine {
    position: absolute; top: 0; left: -100%; width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    transition: left 0.5s;
}
.gk-btn-primary:hover .gk-btn-shine { left: 100%; }
.gh-stats { display: flex; gap: 32px; }
.gh-stats div { display: flex; flex-direction: column; gap: 2px; }
.gh-stats strong {
    font-family: var(--gk-mono); font-size: 24px; font-weight: 700;
    color: var(--gk-cyan);
}
.gh-stats em { font-size: 12px; color: var(--gk-text-mute); font-style: normal; }

.gh-visual { position: relative; }
.gh-code-card {
    background: var(--gk-bg-3); border: 1px solid var(--gk-border-l);
    border-radius: var(--gk-radius-lg); overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
.gh-code-header {
    display: flex; align-items: center; gap: 8px;
    padding: 12px 16px; background: var(--gk-bg-4);
    border-bottom: 1px solid var(--gk-border);
}
.gh-dot { width: 12px; height: 12px; border-radius: 50%; }
.gh-dot-red { background: #FF5F56; }
.gh-dot-yellow { background: #FFBD2E; }
.gh-dot-green { background: #27C93F; }
.gh-code-title {
    flex: 1; text-align: center; font-family: var(--gk-mono);
    font-size: 12px; color: var(--gk-text-mute);
}
.gh-code-body { padding: 20px; font-family: var(--gk-mono); font-size: 13px; line-height: 1.8; }
.gk-c-key { color: var(--gk-purple); }
.gk-c-str { color: var(--gk-green); }
.gk-c-bool { color: var(--gk-pink); }
.gh-banner {
    margin-top: 16px; border-radius: var(--gk-radius-lg);
    border: 1px solid var(--gk-border-l); width: 100%;
    aspect-ratio: 16/6; object-fit: cover; opacity: 0.6;
}

/* ===== Section通用 ===== */
.gk-section { padding: 80px 0; }
.gk-section-dark { background: var(--gk-bg-2); border-top: 1px solid var(--gk-border); border-bottom: 1px solid var(--gk-border); }
.gk-section-dots {
    background-image: radial-gradient(circle, var(--gk-border) 1px, transparent 1px);
    background-size: 24px 24px;
}
.gk-section-head {
    display: flex; gap: 20px; margin-bottom: 48px;
    align-items: flex-start;
}
.gk-section-num {
    font-family: var(--gk-mono); font-size: 14px;
    color: var(--gk-cyan); font-weight: 700;
    padding-top: 6px; white-space: nowrap;
}
.gk-section-head h2 {
    font-size: 30px; font-weight: 800; color: var(--gk-white);
    margin-bottom: 6px;
}
.gk-section-head p {
    font-family: var(--gk-mono); font-size: 13px;
    color: var(--gk-text-mute);
}
.gk-section-head.light h2 { color: var(--gk-white); }

/* ===== 平台表格 ===== */
.gpl-table {
    background: var(--gk-bg-2); border: 1px solid var(--gk-border);
    border-radius: var(--gk-radius-lg); overflow: hidden;
}
.gpl-head {
    display: grid; grid-template-columns: 1.5fr 1fr 2fr 1fr 0.8fr;
    padding: 12px 24px; background: var(--gk-bg-3);
    border-bottom: 1px solid var(--gk-border);
    font-family: var(--gk-mono); font-size: 11px;
    color: var(--gk-text-mute); letter-spacing: 1px;
}
.gpl-row {
    display: grid; grid-template-columns: 1.5fr 1fr 2fr 1fr 0.8fr;
    padding: 18px 24px; align-items: center;
    border-bottom: 1px solid var(--gk-border);
    font-size: 14px; transition: all 0.2s;
}
.gpl-row:last-child { border-bottom: none; }
.gpl-row:hover { background: var(--gk-bg-3); }
.gpl-row-pending { opacity: 0.6; }
.gpl-name { display: flex; align-items: center; gap: 12px; font-weight: 600; color: var(--gk-white); }
.gpl-logo {
    width: 36px; height: 36px; border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
    font-size: 14px; font-weight: 900; color: var(--gk-white); flex-shrink: 0;
}
.gpl-tx, .gdl-tx { background: linear-gradient(135deg, #00A4FF, #0066CC); }
.gpl-iq, .gdl-iq { background: linear-gradient(135deg, #00BE06, #008004); }
.gpl-yk, .gdl-yk { background: linear-gradient(135deg, #1DB7F5, #1196CF); }
.gpl-mg, .gdl-mg { background: linear-gradient(135deg, #FF464F, #DD222B); }
.gpl-bl, .gdl-bl { background: linear-gradient(135deg, #FB7299, #E64E75); }
.gpl-more, .gdl-more { background: var(--gk-bg-4); color: var(--gk-text-mute); font-size: 18px; }
.gpl-devs { font-family: var(--gk-mono); font-size: 12px; color: var(--gk-text-dim); }
.gk-status {
    font-family: var(--gk-mono); font-size: 11px; font-style: normal;
    padding: 4px 8px; border-radius: 4px;
    background: rgba(52,211,153,0.1); color: var(--gk-green);
}
.gk-status-pending { background: rgba(251,191,36,0.1); color: var(--gk-yellow); }
.gpl-action {
    font-family: var(--gk-mono); font-size: 12px;
    color: var(--gk-cyan); text-align: right;
}

/* ===== 下载中心 ===== */
.gdl-switcher {
    display: flex; gap: 8px; margin-bottom: 24px; flex-wrap: wrap;
}
.gdl-tab {
    display: flex; align-items: center; gap: 8px;
    padding: 10px 20px; border-radius: var(--gk-radius);
    background: var(--gk-bg-3); border: 1px solid var(--gk-border);
    color: var(--gk-text-dim); font-family: var(--gk-mono); font-size: 13px;
    transition: all 0.2s;
}
.gdl-tab:hover { border-color: var(--gk-border-l); color: var(--gk-text); }
.gdl-tab.active { background: rgba(34,211,238,0.1); border-color: var(--gk-cyan); color: var(--gk-cyan); }
.gdl-tab kbd {
    padding: 2px 6px; border-radius: 4px;
    background: var(--gk-bg-4); font-size: 11px;
}
.gdl-panel { display: none; }
.gdl-panel.active { display: block; animation: gkFadeIn 0.3s ease; }
@keyframes gkFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}
.gdl-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.gdl-cards-3 { grid-template-columns: repeat(3, 1fr); }
.gdl-card {
    padding: 20px; border-radius: var(--gk-radius);
    background: var(--gk-bg-3); border: 1px solid var(--gk-border);
    transition: all 0.2s;
}
.gdl-card:hover { border-color: var(--gk-cyan-dim); }
.gdl-card-head {
    display: flex; align-items: center; gap: 10px; margin-bottom: 12px;
}
.gdl-logo {
    width: 36px; height: 36px; border-radius: 6px;
    display: flex; align-items: center; justify-content: center;
    font-size: 13px; font-weight: 900; color: var(--gk-white); flex-shrink: 0;
}
.gdl-pkg {
    font-family: var(--gk-mono); font-size: 12px;
    color: var(--gk-text-mute); flex: 1;
}
.gdl-tag {
    font-family: var(--gk-mono); font-size: 10px; font-style: normal;
    padding: 3px 8px; border-radius: 4px; font-weight: 600;
}
.gdl-tag-official { background: rgba(52,211,153,0.15); color: var(--gk-green); }
.gdl-card h3 { font-size: 15px; font-weight: 700; color: var(--gk-white); margin-bottom: 10px; }
.gdl-meta { margin-bottom: 16px; display: flex; flex-direction: column; gap: 4px; }
.gdl-meta li {
    font-family: var(--gk-mono); font-size: 12px;
    color: var(--gk-text-dim);
}
.gdl-meta li span { color: var(--gk-cyan); margin-right: 8px; }
.gdl-warn {
    padding: 12px 16px; border-radius: var(--gk-radius);
    background: rgba(251,191,36,0.08); border: 1px solid rgba(251,191,36,0.2);
    border-left: 3px solid var(--gk-yellow);
    font-size: 13px; color: var(--gk-yellow);
    margin-bottom: 20px; font-family: var(--gk-mono);
}
.gdl-warn-red {
    background: rgba(248,113,113,0.08); border-color: rgba(248,113,113,0.2);
    border-left-color: var(--gk-red); color: var(--gk-red);
}
.gdl-grid-mini { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.gdl-mini {
    display: flex; flex-direction: column; align-items: center; gap: 6px;
    padding: 20px 12px; border-radius: var(--gk-radius);
    background: var(--gk-bg-3); border: 1px solid var(--gk-border);
    text-align: center; transition: all 0.2s;
}
.gdl-mini:hover { border-color: var(--gk-cyan); transform: translateY(-2px); }
.gdl-mini .gdl-logo { margin-bottom: 4px; }
.gdl-mini strong { font-size: 12px; font-weight: 600; color: var(--gk-white); }
.gdl-mini em { font-size: 10px; color: var(--gk-cyan); font-style: normal; font-family: var(--gk-mono); }
.gdl-tv-note {
    font-family: var(--gk-mono); font-size: 12px;
    color: var(--gk-text-dim); margin-bottom: 16px;
}

/* ===== 功能 ===== */
.gfeat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.gfeat-card {
    padding: 24px 20px; border-radius: var(--gk-radius);
    background: var(--gk-bg-2); border: 1px solid var(--gk-border);
    transition: all 0.25s;
}
.gfeat-card:hover { border-color: var(--gk-cyan-dim); transform: translateY(-3px); }
.gfeat-icon { margin-bottom: 12px; }
.gfeat-icon code {
    display: inline-block; padding: 6px 12px; border-radius: 4px;
    background: rgba(34,211,238,0.1); color: var(--gk-cyan);
    font-size: 12px; font-weight: 700; border: 1px solid var(--gk-cyan-dim);
}
.gfeat-card h3 { font-size: 14px; font-weight: 700; color: var(--gk-white); margin-bottom: 6px; }
.gfeat-card p { font-size: 12px; color: var(--gk-text-dim); line-height: 1.6; }

/* ===== 步骤 ===== */
.gstep-flow { display: flex; align-items: stretch; gap: 0; }
.gstep {
    flex: 1; padding: 28px 24px; background: var(--gk-bg-2);
    border: 1px solid var(--gk-border); border-radius: var(--gk-radius-lg);
    position: relative;
}
.gstep-num {
    font-family: var(--gk-mono); font-size: 11px; font-weight: 700;
    color: var(--gk-cyan); margin-bottom: 10px;
}
.gstep h3 { font-size: 16px; font-weight: 700; color: var(--gk-white); margin-bottom: 8px; }
.gstep p { font-size: 13px; color: var(--gk-text-dim); line-height: 1.6; margin-bottom: 12px; }
.gstep code {
    display: block; font-size: 11px; color: var(--gk-green);
    padding: 8px; border-radius: 4px; background: rgba(52,211,153,0.06);
    border-left: 2px solid var(--gk-green);
}
.gstep-arrow {
    display: flex; align-items: center; justify-content: center;
    width: 40px; flex-shrink: 0; color: var(--gk-cyan);
    font-size: 20px; font-family: var(--gk-mono);
}

/* ===== 安全 ===== */
.gsafe-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.gsafe-card {
    padding: 28px; border-radius: var(--gk-radius-lg);
    border: 1px solid;
}
.gsafe-pass { background: rgba(52,211,153,0.04); border-color: rgba(52,211,153,0.2); }
.gsafe-fail { background: rgba(248,113,113,0.04); border-color: rgba(248,113,113,0.2); }
.gsafe-title {
    font-family: var(--gk-mono); font-size: 16px; font-weight: 700;
    margin-bottom: 16px;
}
.gsafe-pass .gsafe-title { color: var(--gk-green); }
.gsafe-fail .gsafe-title { color: var(--gk-red); }
.gsafe-card ul { display: flex; flex-direction: column; gap: 8px; }
.gsafe-card li { font-size: 13px; line-height: 1.7; color: var(--gk-text-dim); }

/* ===== 资讯列表（强制规范） ===== */
ul.article-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px; list-style: none; margin: 0; padding: 0;
    width: 100%; box-sizing: border-box;
}
ul.article-cards > li.article-card {
    min-width: 0; width: auto; max-width: none;
    margin: 0; float: none; box-sizing: border-box;
    background: var(--gk-bg-3); border: 1px solid var(--gk-border);
    border-radius: var(--gk-radius); overflow: hidden;
    transition: all 0.25s;
}
ul.article-cards > li.article-card:hover {
    border-color: var(--gk-cyan-dim); transform: translateY(-3px);
}
.article-card .card-thumb { width: 100%; overflow: hidden; }
.article-card .card-thumb img {
    display: block; width: 100%; max-width: 100%;
    height: auto; object-fit: cover; aspect-ratio: 16/10;
    filter: grayscale(30%); transition: all 0.3s;
}
.article-card:hover .card-thumb img { filter: grayscale(0); }
.article-card .card-body { padding: 18px; }
.article-card .card-title {
    overflow-wrap: anywhere; font-size: 14px; font-weight: 600;
    color: var(--gk-white); margin-bottom: 8px; line-height: 1.5;
    display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
}
.article-card .card-date {
    display: block; font-family: var(--gk-mono); font-size: 11px;
    color: var(--gk-cyan); margin-bottom: 8px;
}
.article-card .card-summary {
    overflow-wrap: anywhere; font-size: 12px; color: var(--gk-text-mute);
    line-height: 1.6;
    display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
}

/* ===== FAQ ===== */
.gfaq-list {
    max-width: 800px; margin: 0 auto;
    display: flex; flex-direction: column; gap: 8px;
}
.gfaq-item {
    background: var(--gk-bg-2); border: 1px solid var(--gk-border);
    border-radius: var(--gk-radius); overflow: hidden;
    transition: border-color 0.2s;
}
.gfaq-item.open { border-color: var(--gk-cyan-dim); }
.gf-q {
    display: flex; align-items: center; gap: 14px;
    padding: 18px 22px; cursor: pointer;
}
.gf-q code {
    font-size: 12px; color: var(--gk-cyan); flex-shrink: 0;
    padding: 4px 8px; border-radius: 4px;
    background: rgba(34,211,238,0.08);
}
.gf-q span { flex: 1; font-size: 14px; font-weight: 500; color: var(--gk-text); }
.gf-q i {
    width: 24px; height: 24px; border-radius: 4px;
    background: var(--gk-bg-4); color: var(--gk-text-mute);
    display: flex; align-items: center; justify-content: center;
    font-style: normal; font-size: 14px; font-weight: 700;
    transition: all 0.3s; flex-shrink: 0;
}
.gfaq-item.open .gf-q i {
    background: var(--gk-cyan); color: var(--gk-bg); transform: rotate(45deg);
}
.gf-a { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
.gf-a p {
    padding: 0 22px 18px 72px; font-size: 13px;
    color: var(--gk-text-dim); line-height: 1.8;
}

/* ===== 关于 ===== */
.gabout-wrap { max-width: 800px; margin: 0 auto; }
.gabout-term {
    background: var(--gk-bg-3); border: 1px solid var(--gk-border);
    border-radius: var(--gk-radius-lg); overflow: hidden;
}
.gat-prompt {
    padding: 12px 20px; background: var(--gk-bg-4);
    border-bottom: 1px solid var(--gk-border);
    font-family: var(--gk-mono); font-size: 12px; color: var(--gk-green);
}
.gat-body { padding: 28px; }
.gat-body h2 { font-size: 26px; font-weight: 800; color: var(--gk-white); margin-bottom: 14px; }
.gat-body > p { font-size: 14px; color: var(--gk-text-dim); line-height: 1.8; margin-bottom: 20px; }
.gat-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.gat-tags li {
    padding: 4px 12px; border-radius: 4px;
    background: rgba(167,139,250,0.08); color: var(--gk-purple);
    font-family: var(--gk-mono); font-size: 12px;
}
.gat-disc {
    padding: 16px; border-radius: var(--gk-radius);
    background: var(--gk-bg-4); border-left: 3px solid var(--gk-yellow);
    font-family: var(--gk-mono); font-size: 12px;
    color: var(--gk-text-dim); line-height: 1.8;
}
.gat-disc strong { color: var(--gk-yellow); }

/* ===== 联系 ===== */
.gcontact-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; max-width: 960px; margin: 0 auto; }
.gc-card {
    padding: 28px; border-radius: var(--gk-radius-lg);
    background: linear-gradient(135deg, var(--gk-bg-3), var(--gk-bg-4));
    border: 1px solid var(--gk-border-l);
    margin-bottom: 20px;
}
.gc-label {
    display: block; font-family: var(--gk-mono); font-size: 11px;
    color: var(--gk-text-mute); margin-bottom: 8px; letter-spacing: 1px;
}
.gc-phone {
    display: block; font-family: var(--gk-mono); font-size: 28px;
    font-weight: 700; color: var(--gk-cyan); margin-bottom: 8px;
}
.gc-hours { font-family: var(--gk-mono); font-size: 12px; color: var(--gk-text-mute); }
.gc-list { display: flex; flex-direction: column; gap: 14px; margin-bottom: 20px; }
.gc-list div {
    display: grid; grid-template-columns: auto 1fr; gap: 12px;
    padding: 14px; border-radius: var(--gk-radius);
    background: var(--gk-bg-2); border: 1px solid var(--gk-border);
}
.gc-list code {
    padding: 3px 8px; border-radius: 4px; height: fit-content;
    background: rgba(34,211,238,0.08); color: var(--gk-cyan);
    font-size: 11px;
}
.gc-list strong { display: block; font-size: 14px; color: var(--gk-white); margin-bottom: 2px; }
.gc-list p { font-size: 12px; color: var(--gk-text-mute); }
.gc-note {
    padding: 14px; border-radius: var(--gk-radius);
    background: rgba(251,191,36,0.06); border: 1px solid rgba(251,191,36,0.15);
    border-left: 3px solid var(--gk-yellow);
    font-size: 12px; color: var(--gk-yellow); line-height: 1.7;
}
.gc-form-wrap {
    background: var(--gk-bg-2); border: 1px solid var(--gk-border);
    border-radius: var(--gk-radius-lg); overflow: hidden;
}
.gcf-head {
    display: flex; align-items: center; gap: 8px;
    padding: 12px 16px; background: var(--gk-bg-3);
    border-bottom: 1px solid var(--gk-border);
    font-family: var(--gk-mono); font-size: 12px;
}
.gcf-method {
    padding: 3px 8px; border-radius: 4px;
    background: var(--gk-green); color: var(--gk-bg);
    font-weight: 700;
}
.gcf-url { color: var(--gk-cyan); flex: 1; }
.gcf-status { color: var(--gk-yellow); }
.gc-form { padding: 24px; display: flex; flex-direction: column; gap: 14px; }
.gc-form label { display: flex; flex-direction: column; gap: 6px; }
.gc-form label span {
    font-family: var(--gk-mono); font-size: 11px;
    color: var(--gk-cyan);
}
.gc-form input, .gc-form select, .gc-form textarea {
    padding: 12px 14px; border-radius: var(--gk-radius);
    border: 1px solid var(--gk-border); background: var(--gk-bg-3);
    color: var(--gk-text); font-size: 13px; font-family: inherit;
    transition: border-color 0.2s;
}
.gc-form textarea { resize: vertical; font-family: inherit; }
.gc-form input:focus, .gc-form select:focus, .gc-form textarea:focus {
    outline: none; border-color: var(--gk-cyan);
}
.gcf-hint {
    font-family: var(--gk-mono); font-size: 11px;
    color: var(--gk-text-mute); text-align: center;
}

/* ===== 页脚 ===== */
.geek-footer {
    background: var(--gk-bg); border-top: 1px solid var(--gk-border);
    padding: 56px 0 28px;
}
.gf-top {
    display: grid; grid-template-columns: 2fr 2fr; gap: 48px;
    padding-bottom: 40px; border-bottom: 1px solid var(--gk-border);
    margin-bottom: 24px;
}
.gf-logo {
    display: block; font-family: var(--gk-mono); font-size: 20px;
    font-weight: 700; color: var(--gk-cyan); margin-bottom: 12px;
}
.gf-brand p { font-size: 13px; color: var(--gk-text-mute); line-height: 1.8; margin-bottom: 14px; max-width: 400px; }
.gf-meta {
    font-family: var(--gk-mono); font-size: 11px;
    color: var(--gk-text-mute); display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.gf-meta a { color: var(--gk-cyan); }
.gf-dot { color: var(--gk-border-l); }
.gf-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gf-col h5 {
    font-family: var(--gk-mono); font-size: 12px;
    color: var(--gk-white); margin-bottom: 14px;
    letter-spacing: 1px;
}
.gf-col a {
    display: block; font-size: 12px; color: var(--gk-text-mute);
    margin-bottom: 8px; font-family: var(--gk-mono);
    transition: color 0.2s;
}
.gf-col a:hover { color: var(--gk-cyan); }
.gf-bottom {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 16px; font-family: var(--gk-mono);
    font-size: 11px; color: var(--gk-text-mute);
}
.gf-bottom span { flex: 1; min-width: 300px; line-height: 1.7; }
.gf-grouplinks a { color: var(--gk-text-mute); margin: 0 4px; }
.gf-grouplinks a:hover { color: var(--gk-cyan); }

/* ===== 文章详情 ===== */
.g-article-section { padding: 60px 0; background: var(--gk-bg); min-height: 60vh; }
.g-article-wrap {
    max-width: 800px; margin: 0 auto;
    background: var(--gk-bg-2); border: 1px solid var(--gk-border);
    border-radius: var(--gk-radius-lg); overflow: hidden;
}
.ga-term-head {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 20px; background: var(--gk-bg-3);
    border-bottom: 1px solid var(--gk-border);
    font-family: var(--gk-mono); font-size: 12px; color: var(--gk-text-mute);
}
.ga-term-dots { display: flex; gap: 6px; }
.ga-term-dots span { width: 10px; height: 10px; border-radius: 50%; }
.ga-term-dots span:nth-child(1) { background: #FF5F56; }
.ga-term-dots span:nth-child(2) { background: #FFBD2E; }
.ga-term-dots span:nth-child(3) { background: #27C93F; }
.ga-head { padding: 32px 40px 0; }
.ga-cat {
    display: inline-block; font-family: var(--gk-mono); font-size: 11px;
    color: var(--gk-cyan); padding: 4px 10px; border-radius: 4px;
    background: rgba(34,211,238,0.08); margin-bottom: 14px;
}
.ga-title { font-size: 28px; font-weight: 800; color: var(--gk-white); line-height: 1.4; margin-bottom: 14px; }
.ga-meta {
    display: flex; gap: 24px; font-family: var(--gk-mono); font-size: 12px;
    color: var(--gk-text-mute); padding-bottom: 20px;
    border-bottom: 1px solid var(--gk-border);
}
.ga-meta code { color: var(--gk-green); margin-right: 6px; }
.ga-meta a { color: var(--gk-cyan); }
.ga-summary {
    margin: 20px 40px; padding: 16px 20px;
    background: rgba(34,211,238,0.04); border: 1px solid rgba(34,211,238,0.15);
    border-left: 3px solid var(--gk-cyan);
    border-radius: var(--gk-radius);
}
.ga-sum-label {
    display: block; font-family: var(--gk-mono); font-size: 11px;
    color: var(--gk-cyan); margin-bottom: 8px;
}
.g-article-wrap img { max-width: calc(100% - 80px); margin: 20px 40px; border-radius: var(--gk-radius); border: 1px solid var(--gk-border); }
.ga-body {
    padding: 0 40px 40px; font-size: 15px; line-height: 1.9;
    color: var(--gk-text);
}
.ga-body h2 { font-size: 22px; font-weight: 700; color: var(--gk-white); margin: 28px 0 14px; }
.ga-body h3 { font-size: 18px; font-weight: 700; color: var(--gk-white); margin: 20px 0 10px; }
.ga-body p { margin-bottom: 14px; }
.ga-body ul, .ga-body ol { margin: 14px 0; padding-left: 24px; }
.ga-body ul { list-style: disc; color: var(--gk-text-dim); }
.ga-body ol { list-style: decimal; color: var(--gk-text-dim); }
.ga-body li { margin-bottom: 6px; }
.ga-related { padding: 0 40px 40px; }
.ga-rel-label {
    display: block; font-family: var(--gk-mono); font-size: 12px;
    color: var(--gk-text-mute); margin-bottom: 16px;
}
.gar-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.gar-card {
    padding: 14px; border-radius: var(--gk-radius);
    background: var(--gk-bg-3); border: 1px solid var(--gk-border);
    display: flex; flex-direction: column; gap: 4px; transition: all 0.2s;
}
.gar-card:hover { border-color: var(--gk-cyan); }
.gar-card code { font-size: 10px; color: var(--gk-cyan); }
.gar-card strong { font-size: 13px; color: var(--gk-white); }
.gar-card span { font-size: 11px; color: var(--gk-text-mute); }
.ga-cta {
    margin: 0 40px 40px; padding: 28px; text-align: center;
    border-radius: var(--gk-radius-lg);
    background: linear-gradient(135deg, var(--gk-bg-3), var(--gk-bg-4));
    border: 1px solid var(--gk-border-l);
}
.gact-term {
    font-family: var(--gk-mono); font-size: 12px;
    color: var(--gk-green); margin-bottom: 12px;
}
.ga-cta p { font-size: 14px; color: var(--gk-text-dim); margin-bottom: 16px; }

/* ===== 响应式 ===== */
@media (max-width: 1024px) {
    .gh-grid { grid-template-columns: 1fr; gap: 40px; }
    .gh-title { font-size: 32px; }
    .gh-visual { max-width: 500px; }
    .gpl-head, .gpl-row { grid-template-columns: 1.5fr 1fr 1fr 1fr; }
    .gpl-head span:nth-child(2), .gpl-row span:nth-child(2) { display: none; }
    .gdl-cards { grid-template-columns: 1fr; }
    .gdl-cards-3 { grid-template-columns: repeat(2, 1fr); }
    .gdl-grid-mini { grid-template-columns: repeat(3, 1fr); }
    .gfeat-grid { grid-template-columns: repeat(2, 1fr); }
    .gstep-flow { flex-wrap: wrap; gap: 12px; }
    .gstep-arrow { display: none; }
    .gstep { flex: 1 1 calc(50% - 12px); min-width: 260px; }
    .gsafe-grid { grid-template-columns: 1fr; }
    .gf-top { grid-template-columns: 1fr; gap: 32px; }
    .gf-cols { grid-template-columns: repeat(3, 1fr); }
    .gcontact-wrap { grid-template-columns: 1fr; }
    .ga-head, .ga-summary, .ga-body, .ga-related, .ga-cta { padding-left: 24px; padding-right: 24px; }
    .g-article-wrap img { max-width: calc(100% - 48px); margin-left: 24px; margin-right: 24px; }
    .gar-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .gk-links { display: none; }
    .gk-tel { display: none; }
    .gk-hamburger { display: flex; }
    .gk-hero { padding: 40px 0 60px; }
    .gh-title { font-size: 26px; }
    .gh-stats { gap: 20px; }
    .gh-stats strong { font-size: 20px; }
    .gh-code-card { display: none; }
    .gh-banner { aspect-ratio: 16/9; }
    .gk-section { padding: 56px 0; }
    .gk-section-head { flex-direction: column; gap: 8px; margin-bottom: 32px; }
    .gk-section-head h2 { font-size: 24px; }
    .gpl-head { display: none; }
    .gpl-row {
        grid-template-columns: 1fr auto; gap: 8px;
        padding: 16px;
    }
    .gpl-row > span:nth-child(2),
    .gpl-row > span:nth-child(3),
    .gpl-row > span:nth-child(4) { grid-column: 1 / -1; }
    .gpl-devs { font-size: 11px; }
    .gdl-cards-3 { grid-template-columns: 1fr; }
    .gdl-grid-mini { grid-template-columns: repeat(2, 1fr); }
    .gfeat-grid { grid-template-columns: 1fr 1fr; }
    .gf-cols { grid-template-columns: 1fr 1fr; }
    .ga-title { font-size: 22px; }
    .gar-grid { grid-template-columns: 1fr 1fr; }
    .gf-bottom { flex-direction: column; text-align: center; }
    .gdl-switcher { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 8px; }
    .gdl-tab { white-space: nowrap; flex-shrink: 0; }
}
@media (max-width: 480px) {
    .gh-ctas { flex-direction: column; }
    .gh-stats { flex-wrap: wrap; gap: 16px; }
    .gfeat-grid { grid-template-columns: 1fr; }
    .gar-grid { grid-template-columns: 1fr; }
    .gf-cols { grid-template-columns: 1fr; }
    .gdl-grid-mini { grid-template-columns: repeat(2, 1fr); }
    .gc-phone { font-size: 22px; }
    .ga-head, .ga-summary, .ga-body, .ga-related, .ga-cta { padding-left: 20px; padding-right: 20px; }
    .g-article-wrap img { max-width: calc(100% - 40px); margin-left: 20px; margin-right: 20px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    html { scroll-behavior: auto; }
    .gh-term-cursor { animation: none; opacity: 1; }
}