/* 引入字体文件 */ @font-face { font-family: 'NotoSansHans'; font-weight: 900; src: url('/font/NotoSansHans/NotoSansHans-Black.otf') format('opentype'); } @font-face { font-family: 'NotoSansHansBold'; font-weight: bold; src: url('/font/NotoSansHans/NotoSansHans-Bold.otf') format('opentype'); } @font-face { font-family: 'NotoSansHans'; font-weight: normal; src: url('/font/NotoSansHans/NotoSansHans-Regular.otf') format('opentype'); } @font-face { font-family: 'NotoSansHansLight'; font-weight: 300; src: url('/font/NotoSansHans/NotoSansHans-Light.otf') format('opentype'); } @font-face { font-family: 'DDIN'; font-weight: normal; src: url('/font/D-Din/D-DIN.ttf') format('truetype'); unicode-range: U+0030-0039; } @font-face { font-family: 'DDINBold'; font-weight: bold; src: url('/font/D-Din/D-DIN-Bold.ttf') format('truetype'); unicode-range: U+0030-0039; } @font-face { font-family: 'Douyu'; src: url('/font/DouyuFont/douyuFont-2.otf') format('opentype'); } @font-face { font-family: 'Noto Sans S Chinese'; font-weight: 100; src: url('/font/NotoSansHans/NotoSansHans-Thin-Windows.otf') format('opentype'); } @font-face { font-family: 'Noto Sans S Chinese'; font-weight: 300; src: url('/font/NotoSansHans/NotoSansHans-Light.otf') format('opentype'); } @font-face { font-family: 'Noto Sans S Chinese'; font-weight: 400; src: url('/font/NotoSansHans/NotoSansHans-Regular.otf') format('opentype'); } @font-face { font-family: 'Noto Sans S Chinese'; font-weight: 500; src: url('/font/NotoSansHans/NotoSansHans-Medium.otf') format('opentype'); } @font-face { font-family: 'Noto Sans S Chinese'; font-weight: 700; src: url('/font/NotoSansHans/NotoSansHans-Bold.otf') format('opentype'); } @font-face { font-family: 'Noto Sans S Chinese'; font-weight: 900; src: url('/font/NotoSansHans/NotoSansHans-Black.otf') format('opentype'); } div,span,p { font-family: 'Noto Sans S Chinese'; } #root { margin: 0 auto; } @keyframes qa-stop-breathing { 0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.45); } 50% { transform: scale(1.04); box-shadow: 0 0 0 8px rgba(239, 68, 68, 0); } } @keyframes qa-avatar-orbit { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(4deg) scale(1.06); } 100% { transform: rotate(0deg) scale(1); } } @keyframes qa-avatar-icon-pulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.12); opacity: 0.82; } } @keyframes qa-avatar-shine { 0% { transform: translateX(-120%) skewX(-18deg); opacity: 0; } 45% { opacity: 0.5; } 100% { transform: translateX(120%) skewX(-18deg); opacity: 0; } } @keyframes qa-spark-twinkle { 0%, 100% { transform: scale(0.85) rotate(0deg); opacity: 0.65; } 50% { transform: scale(1.15) rotate(18deg); opacity: 1; } } .qa-stop-breathing { animation: qa-stop-breathing 1.25s ease-in-out infinite; } .qa-avatar-active { animation: qa-avatar-orbit 1.8s ease-in-out infinite; } .qa-avatar-icon-active { animation: qa-avatar-icon-pulse 1.1s ease-in-out infinite; } .qa-avatar-active .qa-avatar-shine { animation: qa-avatar-shine 1.6s ease-in-out infinite; } .qa-avatar-spark { animation: qa-spark-twinkle 1s ease-in-out infinite; } @keyframes qa-generating-marquee { 0% { background-position: 180% 50%; } 100% { background-position: -80% 50%; } } .qa-generating-marquee { display: inline-block; background-size: 220% 100%; background-clip: text; -webkit-background-clip: text; color: transparent; -webkit-text-fill-color: transparent; animation: qa-generating-marquee 1.45s linear infinite; } .qa-generating-marquee-light { background-image: linear-gradient(90deg, #4b5563 0%, #4b5563 34%, #ef4444 48%, #fb923c 55%, #4b5563 68%, #4b5563 100%); } .qa-generating-marquee-dark { background-image: linear-gradient(90deg, #cbd5e1 0%, #cbd5e1 34%, #67e8f9 48%, #a78bfa 55%, #cbd5e1 68%, #cbd5e1 100%); } .logo { height: 6em; padding: 1.5em; will-change: filter; transition: filter 300ms; } .logo:hover { filter: drop-shadow(0 0 2em #646cffaa); } .logo.react:hover { filter: drop-shadow(0 0 2em #61dafbaa); } @keyframes logo-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @media (prefers-reduced-motion: no-preference) { a:nth-of-type(2) .logo { animation: logo-spin infinite 20s linear; } } .card { padding: 2em; } .read-the-docs { color: #888; }