/* ==========================================================================
   智蓝针 · 官方网站
   科技蓝 + 深色渐变主题
   ========================================================================== */

:root {
    --blue-50:  #eaf4ff;
    --blue-100: #d3e8ff;
    --blue-200: #a9d2ff;
    --blue-300: #74b4ff;
    --blue-400: #3d8bff;
    --blue-500: #1663ff;
    --blue-600: #0b45d6;
    --blue-700: #0a35a5;
    --cyan-400: #22d3ee;
    --cyan-500: #06b6d4;

    --ink-900: #050b1c;
    --ink-800: #0a1228;
    --ink-700: #101a36;
    --ink-600: #1a2547;

    --text-1: #eaf1ff;
    --text-2: #a9b8d8;
    --text-3: #6f7fa3;

    --line: rgba(122, 162, 255, 0.14);
    --line-strong: rgba(122, 162, 255, 0.28);

    --glass: rgba(16, 26, 54, 0.55);
    --glass-2: rgba(22, 34, 68, 0.4);

    --radius-sm: 10px;
    --radius: 16px;
    --radius-lg: 24px;
    --radius-xl: 32px;

    --shadow-sm: 0 4px 16px rgba(0, 0, 0, 0.28);
    --shadow: 0 18px 48px rgba(4, 12, 34, 0.5);
    --shadow-lg: 0 32px 88px rgba(4, 12, 34, 0.66);
    --glow: 0 0 0 1px rgba(61, 139, 255, 0.28), 0 12px 44px rgba(22, 99, 255, 0.28);

    --max: 1200px;
    --ease: cubic-bezier(0.22, 0.68, 0.32, 1);
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 84px;
}

body {
    font-family: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei",
        -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--ink-900);
    color: var(--text-1);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

/* 背景层 --------------------------------------------------------------- */
.bg-layer {
    position: fixed;
    inset: 0;
    z-index: -2;
    background:
        radial-gradient(1100px 620px at 12% -8%, rgba(22, 99, 255, 0.30), transparent 60%),
        radial-gradient(900px 560px at 88% 4%, rgba(6, 182, 212, 0.20), transparent 62%),
        radial-gradient(1200px 800px at 50% 108%, rgba(10, 53, 165, 0.32), transparent 65%),
        linear-gradient(180deg, #050b1c 0%, #070e22 45%, #050b1c 100%);
}

.bg-grid {
    position: fixed;
    inset: 0;
    z-index: -1;
    background-image:
        linear-gradient(rgba(122, 162, 255, 0.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(122, 162, 255, 0.055) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: radial-gradient(circle at 50% 22%, #000 0%, transparent 78%);
    -webkit-mask-image: radial-gradient(circle at 50% 22%, #000 0%, transparent 78%);
}

/* 通用 ---------------------------------------------------------------- */
.container {
    width: min(100% - 48px, var(--max));
    margin-inline: auto;
}

.section {
    padding: 108px 0;
    position: relative;
}

.section-head {
    max-width: 760px;
    margin-bottom: 56px;
}

.section-head.center {
    margin-inline: auto;
    text-align: center;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 15px;
    border-radius: 999px;
    border: 1px solid var(--line-strong);
    background: rgba(22, 99, 255, 0.10);
    color: var(--blue-200);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.06em;
    margin-bottom: 20px;
}

.eyebrow::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--cyan-400);
    box-shadow: 0 0 10px var(--cyan-400);
}

h1, h2, h3, h4 {
    line-height: 1.24;
    font-weight: 700;
    letter-spacing: -0.02em;
}

h2.section-title {
    font-size: clamp(28px, 3.6vw, 44px);
    margin-bottom: 16px;
}

.section-desc {
    color: var(--text-2);
    font-size: 16px;
    max-width: 62ch;
}

.section-head.center .section-desc {
    margin-inline: auto;
}

.gradient-text {
    background: linear-gradient(100deg, #7cc0ff 0%, #3d8bff 42%, #22d3ee 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* 导航 ---------------------------------------------------------------- */
.nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    transition: background 0.3s var(--ease), border-color 0.3s var(--ease),
        box-shadow 0.3s var(--ease);
    border-bottom: 1px solid transparent;
}

.nav.scrolled {
    background: rgba(5, 11, 28, 0.82);
    backdrop-filter: saturate(160%) blur(18px);
    -webkit-backdrop-filter: saturate(160%) blur(18px);
    border-bottom-color: var(--line);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
}

.nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 72px;
    gap: 24px;
}

.brand {
    display: flex;
    align-items: center;
    gap: 11px;
    text-decoration: none;
    color: var(--text-1);
    font-weight: 800;
    font-size: 19px;
    letter-spacing: 0.01em;
}

.brand-mark {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--blue-500), var(--cyan-500));
    box-shadow: 0 6px 20px rgba(22, 99, 255, 0.45);
    flex-shrink: 0;
}

.brand-mark svg {
    width: 22px;
    height: 22px;
}

.brand-sub {
    display: block;
    font-size: 11px;
    font-weight: 500;
    color: var(--text-3);
    letter-spacing: 0.12em;
    line-height: 1;
    margin-top: 3px;
}

.nav-links {
    display: flex;
    align-items: center;
    gap: 34px;
    list-style: none;
}

.nav-links a {
    color: var(--text-2);
    text-decoration: none;
    font-size: 15px;
    font-weight: 500;
    transition: color 0.22s var(--ease);
    position: relative;
}

.nav-links a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -7px;
    width: 0;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--blue-400), var(--cyan-400));
    transition: width 0.25s var(--ease);
}

.nav-links a:hover {
    color: var(--text-1);
}

.nav-links a:hover::after {
    width: 100%;
}

.nav-cta {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* 按钮 ---------------------------------------------------------------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 13px 26px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
    transition: transform 0.22s var(--ease), box-shadow 0.22s var(--ease),
        background 0.22s var(--ease), border-color 0.22s var(--ease);
    white-space: nowrap;
}

.btn:hover {
    transform: translateY(-2px);
}

.btn-primary {
    background: linear-gradient(135deg, var(--blue-500), var(--blue-600));
    color: #fff;
    box-shadow: 0 10px 30px rgba(22, 99, 255, 0.36);
}

.btn-primary:hover {
    box-shadow: 0 16px 42px rgba(22, 99, 255, 0.5);
}

.btn-ghost {
    background: rgba(122, 162, 255, 0.08);
    border-color: var(--line-strong);
    color: var(--text-1);
}

.btn-ghost:hover {
    background: rgba(122, 162, 255, 0.16);
    border-color: var(--blue-400);
}

.btn-sm {
    padding: 10px 20px;
    font-size: 14px;
}

/* Hero ---------------------------------------------------------------- */
.hero {
    padding: 150px 0 90px;
    position: relative;
}

.hero-grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 64px;
    align-items: center;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 7px 16px 7px 8px;
    border-radius: 999px;
    border: 1px solid var(--line-strong);
    background: rgba(10, 53, 165, 0.22);
    font-size: 13px;
    color: var(--blue-100);
    margin-bottom: 26px;
    font-weight: 500;
}

.hero-badge b {
    background: linear-gradient(135deg, var(--blue-500), var(--cyan-500));
    color: #fff;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.hero h1 {
    font-size: clamp(34px, 5.2vw, 62px);
    margin-bottom: 22px;
}

.hero-lead {
    font-size: clamp(15px, 1.5vw, 18px);
    color: var(--text-2);
    max-width: 54ch;
    margin-bottom: 34px;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 42px;
}

.hero-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 38px;
}

.hero-stat .num {
    font-size: 30px;
    font-weight: 800;
    letter-spacing: -0.03em;
    background: linear-gradient(120deg, #fff, var(--blue-200));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    line-height: 1.15;
}

.hero-stat .label {
    font-size: 13px;
    color: var(--text-3);
    margin-top: 2px;
}

/* 设备卡片 ------------------------------------------------------------- */
.device-stage {
    position: relative;
    display: grid;
    place-items: center;
}

.device-glow {
    position: absolute;
    width: 460px;
    height: 460px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(22, 99, 255, 0.42), transparent 66%);
    filter: blur(28px);
    animation: pulse 5.5s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% { transform: scale(1); opacity: 0.85; }
    50%      { transform: scale(1.1); opacity: 1; }
}

.device {
    position: relative;
    width: 330px;
    padding: 26px;
    border-radius: var(--radius-xl);
    background: linear-gradient(160deg, rgba(26, 37, 71, 0.95), rgba(10, 18, 40, 0.96));
    border: 1px solid var(--line-strong);
    box-shadow: var(--shadow-lg), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.device-screen {
    border-radius: var(--radius);
    background: linear-gradient(170deg, #061024, #0a1938);
    border: 1px solid var(--line);
    padding: 22px 20px;
    text-align: center;
    min-height: 218px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
}

.device-orb {
    width: 62px;
    height: 62px;
    margin: 0 auto;
    border-radius: 50%;
    background: radial-gradient(circle at 34% 30%, var(--cyan-400), var(--blue-500) 58%, #06307f);
    box-shadow: 0 0 34px rgba(34, 211, 238, 0.55), inset 0 -8px 18px rgba(0, 0, 0, 0.35);
    display: grid;
    place-items: center;
    animation: breathe 3.4s ease-in-out infinite;
}

@keyframes breathe {
    0%, 100% { transform: scale(1); box-shadow: 0 0 34px rgba(34, 211, 238, 0.45), inset 0 -8px 18px rgba(0,0,0,0.35); }
    50%      { transform: scale(1.07); box-shadow: 0 0 52px rgba(34, 211, 238, 0.75), inset 0 -8px 18px rgba(0,0,0,0.35); }
}

.device-orb svg {
    width: 28px;
    height: 28px;
    color: #fff;
}

.device-status {
    font-size: 13px;
    color: var(--text-3);
    letter-spacing: 0.04em;
}

.device-voice {
    font-size: 15px;
    font-weight: 600;
    color: var(--blue-100);
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
}

.device-voice.typing::after {
    content: "";
    width: 2px;
    height: 17px;
    background: var(--cyan-400);
    margin-left: 3px;
    animation: caret 0.9s steps(2) infinite;
}

@keyframes caret {
    50% { opacity: 0; }
}

.device-bar {
    height: 4px;
    border-radius: 999px;
    background: rgba(122, 162, 255, 0.16);
    overflow: hidden;
}

.device-bar > i {
    display: block;
    height: 100%;
    width: 0;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--blue-400), var(--cyan-400));
    transition: width 0.5s var(--ease);
}

.device-foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 18px;
    font-size: 12px;
    color: var(--text-3);
}

.device-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 11px;
    border-radius: 999px;
    background: rgba(34, 211, 238, 0.12);
    border: 1px solid rgba(34, 211, 238, 0.3);
    color: var(--cyan-400);
    font-weight: 600;
}

.device-chip i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--cyan-400);
    animation: blink 1.8s ease-in-out infinite;
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.25; }
}

.float-card {
    position: absolute;
    padding: 11px 16px;
    border-radius: var(--radius);
    background: var(--glass);
    border: 1px solid var(--line-strong);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: var(--shadow-sm);
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 9px;
    white-space: nowrap;
}

.float-card .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--cyan-400);
    box-shadow: 0 0 9px var(--cyan-400);
    flex-shrink: 0;
}

.float-card.f1 { top: 8%; left: -34px; animation: float 6s ease-in-out infinite; }
.float-card.f2 { bottom: 14%; right: -40px; animation: float 7.5s ease-in-out infinite 0.6s; }
.float-card.f3 { bottom: 2%; left: -16px; animation: float 8.5s ease-in-out infinite 1.2s; }

.float-card b {
    color: var(--text-1);
    font-weight: 600;
}

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-13px); }
}

/* 能力卡片 ------------------------------------------------------------- */
.cap-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 22px;
}

.cap-card {
    position: relative;
    padding: 30px 26px;
    border-radius: var(--radius-lg);
    background: var(--glass-2);
    border: 1px solid var(--line);
    overflow: hidden;
    transition: transform 0.3s var(--ease), border-color 0.3s var(--ease),
        box-shadow 0.3s var(--ease);
}

.cap-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(520px 240px at 50% -10%, rgba(22, 99, 255, 0.24), transparent 70%);
    opacity: 0;
    transition: opacity 0.35s var(--ease);
}

.cap-card:hover {
    transform: translateY(-6px);
    border-color: var(--line-strong);
    box-shadow: var(--shadow);
}

.cap-card:hover::before {
    opacity: 1;
}

.cap-icon {
    position: relative;
    width: 50px;
    height: 50px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: linear-gradient(140deg, rgba(22, 99, 255, 0.3), rgba(6, 182, 212, 0.2));
    border: 1px solid var(--line-strong);
    color: var(--blue-200);
    margin-bottom: 20px;
}

.cap-icon svg {
    width: 24px;
    height: 24px;
}

.cap-card h3 {
    position: relative;
    font-size: 19px;
    margin-bottom: 10px;
}

.cap-card p {
    position: relative;
    color: var(--text-2);
    font-size: 14.5px;
}

.cap-tag {
    position: relative;
    display: inline-block;
    margin-top: 16px;
    padding: 4px 11px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    background: rgba(6, 182, 212, 0.13);
    border: 1px solid rgba(6, 182, 212, 0.28);
    color: var(--cyan-400);
}

/* 语音专区 ------------------------------------------------------------- */
.voice-section {
    position: relative;
}

.voice-wrap {
    display: grid;
    grid-template-columns: 0.92fr 1.08fr;
    gap: 56px;
    align-items: start;
}

.voice-list {
    list-style: none;
    margin-top: 30px;
    display: grid;
    gap: 16px;
}

.voice-list li {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 17px 19px;
    border-radius: var(--radius);
    background: var(--glass-2);
    border: 1px solid var(--line);
    transition: border-color 0.25s var(--ease), transform 0.25s var(--ease);
}

.voice-list li:hover {
    border-color: var(--line-strong);
    transform: translateX(4px);
}

.voice-list .idx {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    font-size: 12px;
    font-weight: 700;
    background: rgba(22, 99, 255, 0.2);
    border: 1px solid var(--line-strong);
    color: var(--blue-200);
}

.voice-list b {
    display: block;
    font-size: 15.5px;
    margin-bottom: 3px;
}

.voice-list span {
    font-size: 14px;
    color: var(--text-2);
}

/* 语音控制台 */
.console {
    border-radius: var(--radius-lg);
    background: linear-gradient(165deg, rgba(20, 32, 64, 0.9), rgba(8, 15, 34, 0.94));
    border: 1px solid var(--line-strong);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.console-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--line);
    background: rgba(6, 11, 28, 0.5);
}

.console-dot {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #ff5f57;
}

.console-dot:nth-child(2) { background: #febc2e; }
.console-dot:nth-child(3) { background: #28c840; }

.console-title {
    margin-left: 10px;
    font-size: 13px;
    color: var(--text-3);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.console-body {
    padding: 24px;
}

.cmd-grid {
    display: grid;
    gap: 10px;
    margin-bottom: 22px;
}

.cmd-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    padding: 13px 17px;
    border-radius: var(--radius-sm);
    background: rgba(122, 162, 255, 0.07);
    border: 1px solid var(--line);
    color: var(--text-1);
    font-size: 14.5px;
    font-family: inherit;
    cursor: pointer;
    text-align: left;
    transition: background 0.22s var(--ease), border-color 0.22s var(--ease),
        transform 0.22s var(--ease);
}

.cmd-btn:hover {
    background: rgba(22, 99, 255, 0.16);
    border-color: var(--blue-400);
    transform: translateX(3px);
}

.cmd-btn .api {
    flex-shrink: 0;
    font-size: 11px;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    color: var(--cyan-400);
    background: rgba(6, 182, 212, 0.1);
    border: 1px solid rgba(6, 182, 212, 0.24);
    padding: 3px 9px;
    border-radius: 6px;
}

.console-out {
    border-radius: var(--radius-sm);
    background: rgba(3, 8, 22, 0.82);
    border: 1px solid var(--line);
    padding: 17px 19px;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12.5px;
    line-height: 1.85;
    color: var(--text-2);
    min-height: 218px;
    max-height: 300px;
    overflow-y: auto;
    white-space: pre-wrap;
    word-break: break-all;
}

.console-out .ok   { color: #4ade80; }
.console-out .info { color: var(--blue-200); }
.console-out .warn { color: #fbbf24; }
.console-out .key  { color: var(--cyan-400); }

.console-out::-webkit-scrollbar { width: 6px; }
.console-out::-webkit-scrollbar-thumb {
    background: rgba(122, 162, 255, 0.26);
    border-radius: 3px;
}

/* 三端流程 ------------------------------------------------------------- */
.flow {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.flow-card {
    position: relative;
    padding: 32px 28px;
    border-radius: var(--radius-lg);
    background: var(--glass-2);
    border: 1px solid var(--line);
    text-align: center;
    transition: transform 0.3s var(--ease), border-color 0.3s var(--ease);
}

.flow-card:hover {
    transform: translateY(-6px);
    border-color: var(--line-strong);
}

.flow-card::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -23px;
    width: 22px;
    height: 2px;
    background: linear-gradient(90deg, var(--blue-400), var(--cyan-400));
    transform: translateY(-50%);
}

.flow-card:last-child::after {
    display: none;
}

.flow-avatar {
    width: 62px;
    height: 62px;
    margin: 0 auto 18px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    background: linear-gradient(140deg, rgba(22, 99, 255, 0.32), rgba(6, 182, 212, 0.18));
    border: 1px solid var(--line-strong);
    color: var(--blue-200);
}

.flow-avatar svg {
    width: 28px;
    height: 28px;
}

.flow-step {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--cyan-400);
    margin-bottom: 8px;
}

.flow-card h3 {
    font-size: 20px;
    margin-bottom: 12px;
}

.flow-card p {
    color: var(--text-2);
    font-size: 14.5px;
}

.flow-points {
    list-style: none;
    margin-top: 18px;
    text-align: left;
    display: grid;
    gap: 8px;
}

.flow-points li {
    font-size: 13.5px;
    color: var(--text-2);
    padding-left: 20px;
    position: relative;
}

.flow-points li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--blue-400);
}

/* 商品 ----------------------------------------------------------------- */
.goods-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
    gap: 20px;
}

.goods-card {
    border-radius: var(--radius-lg);
    background: var(--glass-2);
    border: 1px solid var(--line);
    overflow: hidden;
    transition: transform 0.3s var(--ease), border-color 0.3s var(--ease),
        box-shadow 0.3s var(--ease);
}

.goods-card:hover {
    transform: translateY(-6px);
    border-color: var(--line-strong);
    box-shadow: var(--shadow);
}

.goods-thumb {
    aspect-ratio: 4 / 3;
    background: linear-gradient(140deg, #0d1a3c, #0a1430);
    display: grid;
    place-items: center;
    overflow: hidden;
    border-bottom: 1px solid var(--line);
}

.goods-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s var(--ease);
}

.goods-card:hover .goods-thumb img {
    transform: scale(1.06);
}

.goods-body {
    padding: 20px;
}

.goods-brand {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--cyan-400);
    margin-bottom: 7px;
}

.goods-name {
    font-size: 15.5px;
    font-weight: 600;
    margin-bottom: 12px;
    min-height: 42px;
    color: var(--text-1);
}

.goods-meta {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}

.goods-price {
    font-size: 21px;
    font-weight: 800;
    color: var(--blue-300);
}

.goods-price small {
    font-size: 13px;
    font-weight: 600;
}

.goods-sales {
    font-size: 12.5px;
    color: var(--text-3);
}

.goods-note {
    margin-top: 20px;
    text-align: center;
    color: var(--text-3);
    font-size: 13.5px;
}

/* 保障 / 特性 ---------------------------------------------------------- */
.feature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(268px, 1fr));
    gap: 20px;
}

.feature {
    padding: 26px 24px;
    border-radius: var(--radius);
    background: var(--glass-2);
    border: 1px solid var(--line);
    transition: border-color 0.25s var(--ease), background 0.25s var(--ease);
}

.feature:hover {
    border-color: var(--line-strong);
    background: rgba(22, 34, 68, 0.6);
}

.feature-top {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 13px;
}

.feature-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: rgba(22, 99, 255, 0.16);
    border: 1px solid var(--line-strong);
    color: var(--blue-200);
    flex-shrink: 0;
}

.feature-icon svg {
    width: 21px;
    height: 21px;
}

.feature h4 {
    font-size: 16.5px;
}

.feature p {
    font-size: 14px;
    color: var(--text-2);
}

/* 技术栈 --------------------------------------------------------------- */
.tech-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 52px;
    align-items: center;
}

.tech-list {
    list-style: none;
    display: grid;
    gap: 14px;
    margin-top: 28px;
}

.tech-list li {
    display: flex;
    gap: 13px;
    align-items: flex-start;
    font-size: 14.5px;
    color: var(--text-2);
}

.tech-list li b {
    color: var(--text-1);
    font-weight: 600;
}

.tech-list .tick {
    flex-shrink: 0;
    width: 21px;
    height: 21px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(74, 222, 128, 0.14);
    border: 1px solid rgba(74, 222, 128, 0.32);
    color: #4ade80;
    margin-top: 2px;
}

.tech-list .tick svg {
    width: 12px;
    height: 12px;
}

.code-card {
    border-radius: var(--radius-lg);
    background: rgba(3, 8, 22, 0.86);
    border: 1px solid var(--line-strong);
    box-shadow: var(--shadow);
    overflow: hidden;
}

.code-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 13px 17px;
    border-bottom: 1px solid var(--line);
    background: rgba(6, 11, 28, 0.55);
}

.code-file {
    margin-left: 10px;
    font-size: 12.5px;
    color: var(--text-3);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.code-body {
    padding: 20px 22px;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12.5px;
    line-height: 2;
    overflow-x: auto;
    color: var(--text-2);
}

.code-body .c  { color: #5c6b8f; font-style: italic; }
.code-body .k  { color: #c084fc; }
.code-body .s  { color: #7ee787; }
.code-body .n  { color: #79c0ff; }
.code-body .f  { color: #ffa657; }
.code-body .p  { color: var(--cyan-400); }

/* CTA ----------------------------------------------------------------- */
.cta {
    position: relative;
    padding: 76px 60px;
    border-radius: var(--radius-xl);
    background:
        radial-gradient(760px 340px at 18% 0%, rgba(22, 99, 255, 0.34), transparent 66%),
        linear-gradient(140deg, rgba(16, 26, 54, 0.95), rgba(8, 15, 34, 0.96));
    border: 1px solid var(--line-strong);
    box-shadow: var(--shadow-lg);
    text-align: center;
    overflow: hidden;
}

.cta::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(122, 162, 255, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(122, 162, 255, 0.05) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: radial-gradient(circle at 50% 50%, #000, transparent 76%);
    -webkit-mask-image: radial-gradient(circle at 50% 50%, #000, transparent 76%);
}

.cta > * {
    position: relative;
}

.cta h2 {
    font-size: clamp(26px, 3.4vw, 40px);
    margin-bottom: 16px;
}

.cta p {
    color: var(--text-2);
    max-width: 56ch;
    margin: 0 auto 32px;
}

.cta-actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

/* 页脚 ---------------------------------------------------------------- */
.footer {
    border-top: 1px solid var(--line);
    padding: 54px 0 30px;
    margin-top: 40px;
}

.footer-top {
    display: grid;
    grid-template-columns: 1.6fr repeat(3, 1fr);
    gap: 40px;
    padding-bottom: 36px;
}

.footer-brand p {
    color: var(--text-3);
    font-size: 14px;
    margin-top: 16px;
    max-width: 34ch;
}

.footer h5 {
    font-size: 14.5px;
    margin-bottom: 16px;
    color: var(--text-1);
}

.footer ul {
    list-style: none;
    display: grid;
    gap: 11px;
}

.footer ul a {
    color: var(--text-3);
    text-decoration: none;
    font-size: 14px;
    transition: color 0.2s var(--ease);
}

.footer ul a:hover {
    color: var(--blue-200);
}

.footer-bottom {
    border-top: 1px solid var(--line);
    padding-top: 24px;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    font-size: 13px;
    color: var(--text-3);
}

/* 移动端菜单开关 ------------------------------------------------------- */
.nav-toggle {
    display: none;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    border: 1px solid var(--line-strong);
    background: rgba(122, 162, 255, 0.08);
    cursor: pointer;
    padding: 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.nav-toggle span {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: var(--text-1);
    transition: transform 0.28s var(--ease), opacity 0.2s var(--ease);
}

.nav-toggle.active span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav-toggle.active span:nth-child(2) { opacity: 0; }
.nav-toggle.active span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.nav-drawer {
    display: none;
    border-top: 1px solid var(--line);
    background: rgba(5, 11, 28, 0.96);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.nav-drawer.open {
    display: block;
}

.nav-drawer ul {
    list-style: none;
    padding: 10px 24px 22px;
}

.nav-drawer li a {
    display: block;
    padding: 13px 4px;
    color: var(--text-2);
    text-decoration: none;
    font-size: 15.5px;
    font-weight: 500;
    border-bottom: 1px solid var(--line);
}

.nav-drawer li:last-child a {
    border-bottom: none;
}

.nav-drawer li a:hover {
    color: var(--blue-200);
}

/* 响应式 --------------------------------------------------------------- */
@media (max-width: 1080px) {
    .hero-grid,
    .voice-wrap,
    .tech-wrap {
        grid-template-columns: 1fr;
        gap: 46px;
    }

    .device-stage {
        order: -1;
    }

    .float-card.f1 { left: 0; }
    .float-card.f2 { right: 0; }

    .footer-top {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 900px) {
    .nav-links {
        display: none;
    }

    .nav-toggle {
        display: flex;
    }

    .nav-hide-sm {
        display: none;
    }

    .flow {
        grid-template-columns: 1fr;
    }

    .flow-card::after {
        display: none;
    }
}

@media (max-width: 620px) {
    .section {
        padding: 74px 0;
    }

    .container {
        width: min(100% - 32px, var(--max));
    }

    .hero {
        padding: 118px 0 70px;
    }

    .hero-stats {
        gap: 26px;
    }

    .footer-top {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .cta {
        padding: 54px 24px;
    }

    .device {
        width: 100%;
        max-width: 330px;
    }
}

/* 滚动出现动画 --------------------------------------------------------- */
.reveal {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}

.reveal.visible {
    opacity: 1;
    transform: none;
}
