/* OpenTerminal 官网 - 企业风浅色主题 单一强调色: 品牌绿 #1a7f37 (深化的 #3fb950, 保证浅底对比度) 无渐变 / 无发光 / 无装饰性动画, 仅保留 hover 与 focus 反馈 */ :root { --bg: #ffffff; --bg-soft: #f7f8f8; --text: #1c2128; --text-2: #57606a; --border: #d9dee3; --accent: #1a7f37; --accent-hover: #116329; --radius: 8px; --mono: ui-monospace, "Cascadia Mono", "SF Mono", Consolas, monospace; } * { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } body { font-family: "Segoe UI", "Microsoft YaHei", -apple-system, "PingFang SC", "Noto Sans SC", sans-serif; font-size: 16px; line-height: 1.6; color: var(--text); background: var(--bg); -webkit-font-smoothing: antialiased; } .container { max-width: 1120px; margin: 0 auto; padding: 0 24px; } .mono { font-family: var(--mono); font-size: 0.92em; } /* ---- nav ---- */ .site-nav { position: sticky; top: 0; z-index: 10; background: rgba(255, 255, 255, 0.94); border-bottom: 1px solid var(--border); } .nav-inner { display: flex; align-items: center; justify-content: space-between; height: 64px; } .brand { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 17px; color: var(--text); text-decoration: none; } .nav-links { display: flex; gap: 28px; } .nav-links a { color: var(--text-2); text-decoration: none; font-size: 15px; } .nav-links a:hover { color: var(--text); } /* ---- hero ---- */ .hero { padding: 72px 0 0; background: var(--bg-soft); border-bottom: 1px solid var(--border); } .hero-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 48px; align-items: center; } .hero-kicker { font-size: 14px; color: var(--text-2); margin-bottom: 16px; } .hero h1 { font-size: 36px; line-height: 1.25; letter-spacing: -0.02em; font-weight: 650; } .hero-sub { margin-top: 20px; max-width: 46ch; color: var(--text-2); font-size: 17px; } .hero-actions { display: flex; gap: 12px; margin-top: 28px; flex-wrap: wrap; } .btn { display: inline-block; padding: 10px 22px; border-radius: var(--radius); font-size: 15px; font-weight: 600; text-decoration: none; border: 1px solid transparent; } .btn:active { transform: translateY(1px); } .btn-primary { background: var(--accent); color: #ffffff; } .btn-primary:hover { background: var(--accent-hover); } .btn-ghost { color: var(--text); border-color: var(--border); background: var(--bg); } .btn-ghost:hover { border-color: var(--text-2); } .hero-note { margin-top: 14px; font-size: 13px; color: var(--text-2); } .hero-shot { min-width: 0; } .hero-shot img { display: block; width: 100%; height: auto; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 8px 24px rgba(28, 33, 40, 0.10); } .hero-shot figcaption { margin-top: 10px; font-size: 13px; color: var(--text-2); text-align: center; } .spec-strip { display: flex; gap: 32px; flex-wrap: wrap; padding-top: 40px; padding-bottom: 40px; font-size: 14px; color: var(--text-2); } .spec-strip strong { color: var(--text); font-weight: 600; } /* ---- features ---- */ .features { padding: 72px 0; } .features h2, .download h2, .changelog h2 { font-size: 28px; font-weight: 650; letter-spacing: -0.01em; } .section-sub { margin-top: 10px; color: var(--text-2); max-width: 60ch; } .feature-row { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; margin-top: 48px; } .media-row { grid-template-columns: 7fr 5fr; align-items: center; gap: 56px; } .feature-copy h3 { font-size: 20px; font-weight: 650; margin-bottom: 16px; } .feature-copy ul { list-style: none; display: grid; gap: 10px; } .feature-copy li { padding-left: 18px; position: relative; color: var(--text-2); font-size: 15px; } .feature-copy li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 6px; height: 2px; background: var(--accent); } .feature-shot img { display: block; width: 100%; height: auto; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 6px 18px rgba(28, 33, 40, 0.08); } /* ---- download ---- */ .download { padding: 72px 0; background: var(--bg-soft); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); } .dl-table { width: 100%; border-collapse: collapse; margin-top: 40px; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; font-size: 14.5px; } .dl-table th, .dl-table td { text-align: left; padding: 14px 18px; vertical-align: top; } .dl-table thead th { background: var(--bg-soft); color: var(--text-2); font-weight: 600; font-size: 13px; } .dl-table tbody tr + tr td { border-top: 1px solid var(--border); } .dl-table a { color: var(--accent); text-decoration: none; font-weight: 600; } .dl-table a:hover { text-decoration: underline; } .dl-table .sep { color: var(--border); margin: 0 8px; } .update-note { margin-top: 40px; max-width: 72ch; } .update-note h3 { font-size: 16px; margin-bottom: 8px; } .update-note p { color: var(--text-2); font-size: 14.5px; } /* ---- changelog ---- */ .changelog { padding: 72px 0; } .changelog-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; margin-top: 40px; } .changelog-list article h3 { font-size: 15px; font-weight: 600; margin-bottom: 12px; } .changelog-list article h3 .mono { color: var(--text); margin-right: 8px; } .changelog-list ul { list-style: none; display: grid; gap: 8px; } .changelog-list li { font-size: 14px; color: var(--text-2); } .changelog-more { margin-top: 40px; font-size: 14px; color: var(--text-2); } .changelog-more a { color: var(--accent); } /* ---- footer ---- */ .site-footer { border-top: 1px solid var(--border); padding: 28px 0; font-size: 13.5px; color: var(--text-2); } .footer-inner { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; } /* ---- responsive ---- */ @media (max-width: 960px) { .hero-grid { grid-template-columns: 1fr; gap: 40px; } .hero { padding-top: 48px; } .feature-row, .media-row { grid-template-columns: 1fr; gap: 32px; } .media-row .feature-shot { order: -1; } .changelog-list { grid-template-columns: 1fr; gap: 32px; } } @media (max-width: 640px) { .nav-links { gap: 16px; } .nav-links a { font-size: 14px; } .hero h1 { font-size: 30px; } .dl-table { display: block; overflow-x: auto; white-space: nowrap; } } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }