675 lines
15 KiB
CSS
675 lines
15 KiB
CSS
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box
|
|
}
|
|
|
|
body {
|
|
font-family: Inter,sans-serif;
|
|
overflow-x: hidden
|
|
}
|
|
|
|
.nav-scrolled {
|
|
background-color: rgba(0,0,0,.95);
|
|
backdrop-filter: blur(8px);
|
|
box-shadow: 0 2px 10px rgba(255,255,255,.1)
|
|
}
|
|
|
|
.chart-container {
|
|
position: relative;
|
|
height: 350px;
|
|
width: 100%
|
|
}
|
|
|
|
iframe {
|
|
transition: opacity .5s ease
|
|
}
|
|
|
|
.group:hover iframe {
|
|
opacity: 1
|
|
}
|
|
|
|
html {
|
|
scroll-behavior: smooth
|
|
}
|
|
|
|
button {
|
|
transition: all .3s cubic-bezier(.4, 0, .2, 1)
|
|
}
|
|
|
|
button:hover {
|
|
transform: translateY(-2px)
|
|
}
|
|
|
|
.card-hover {
|
|
transition: all .4s cubic-bezier(.175, .885, .32, 1.275)
|
|
}
|
|
|
|
.card-hover:hover {
|
|
transform: translateY(-6px);
|
|
box-shadow: 0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)
|
|
}
|
|
|
|
@layer base {
|
|
body {
|
|
min-height: 100vh;
|
|
margin: 0;
|
|
padding: 0;
|
|
transform: none;
|
|
will-change: auto;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale
|
|
}
|
|
}
|
|
|
|
body::before {
|
|
content: "";
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100vw;
|
|
height: 100vh;
|
|
z-index: -2;
|
|
pointer-events: none;
|
|
background: linear-gradient(-45deg,#fff,#fcfeff,#eff6ff,#d9d9ff);
|
|
background-size: 400% 400%;
|
|
animation: gradientFlow 20s ease infinite;
|
|
will-change: background-position
|
|
}
|
|
|
|
body::after {
|
|
content: "";
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100vw;
|
|
height: 100vh;
|
|
z-index: -1;
|
|
pointer-events: none;
|
|
background: radial-gradient(circle at 20% 80%,rgba(120,119,198,.2) 0,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,119,198,.2) 0,transparent 50%),radial-gradient(circle at 40% 40%,rgba(120,219,255,.2) 0,transparent 50%);
|
|
background-size: 150% 150%;
|
|
animation: particleFlow 20s ease infinite;
|
|
will-change: background-position
|
|
}
|
|
|
|
@keyframes gradientFlow {
|
|
0% {background-position: 0 50%}
|
|
25% {background-position: 100% 50%}
|
|
50% {background-position: 100% 100%}
|
|
75% {background-position: 0 100%}
|
|
100% {background-position: 0 50%}
|
|
}
|
|
|
|
@keyframes particleFlow {
|
|
0% {background-position: 0 0}
|
|
25% {background-position: 50% 100%}
|
|
50% {background-position: 100% 100%}
|
|
75% {background-position: 50% 0}
|
|
100% {background-position: 0 0}
|
|
}
|
|
|
|
@layer utilities {
|
|
.float-fix {
|
|
position: relative;
|
|
transform: translateZ(0);
|
|
backface-visibility: hidden;
|
|
perspective: 1000px;
|
|
will-change: transform
|
|
}
|
|
}
|
|
|
|
/* 深色模式适配(可选)
|
|
@media (prefers-color-scheme: dark) {
|
|
body {
|
|
background: linear-gradient(-45deg,
|
|
#0f172a, #1e293b, #334155, #475569,
|
|
#27374d, #1a2434, #0f172a);
|
|
}
|
|
|
|
body::before {
|
|
background:
|
|
radial-gradient(circle at 20% 80%, rgba(120, 119, 198, 0.1) 0%, transparent 50%),
|
|
radial-gradient(circle at 80% 20%, rgba(255, 119, 198, 0.1) 0%, transparent 50%),
|
|
radial-gradient(circle at 40% 40%, rgba(120, 219, 255, 0.08) 0%, transparent 50%);
|
|
}
|
|
}*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@property --angle {
|
|
syntax: "<angle>";
|
|
initial-value: 0deg;
|
|
inherits: false
|
|
}
|
|
|
|
@keyframes sendBtnGradientRotate {
|
|
0% {
|
|
--angle: 0deg
|
|
}
|
|
|
|
7.14% {
|
|
--angle: 21.8deg
|
|
}
|
|
|
|
42.86% {
|
|
--angle: 158.2deg
|
|
}
|
|
|
|
57.14% {
|
|
--angle: 201.8deg
|
|
}
|
|
|
|
92.86% {
|
|
--angle: 338.2deg
|
|
}
|
|
|
|
to {
|
|
--angle: 360deg
|
|
}
|
|
}
|
|
|
|
.sendBtn {
|
|
background: linear-gradient(var(--angle),#47c0ff -18.45%,#0094ff 17.73%,#836cff 39.48%,#ff56f2 74.15%,#ffb75c 93.09%);
|
|
-webkit-animation: sendBtnGradientRotate 5s linear infinite;
|
|
animation: sendBtnGradientRotate 5s linear infinite;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 1. 首先引入 DIN Condensed 字体(解决字体缺失核心问题) */
|
|
@font-face {
|
|
font-family: "DIN Condensed";
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
font-display: fallback;
|
|
/* 修正字体文件 URL,仅保留有效的字体资源地址 */
|
|
src:url(https://cdn.marmot-cloud.com/storage/zenmux/2025/09/03/XH4qEdP/DIN_Condensed-Bold.woff2) format('woff2'),
|
|
local("DIN Condensed Bold"), local("DINCondensed-Bold");
|
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
}
|
|
|
|
/* 保留原有 Noto Serif 字体定义(不影响翻牌组件) */
|
|
@font-face {
|
|
font-family: "Noto Serif";
|
|
font-style: normal;
|
|
font-weight: 300;
|
|
font-display: fallback;
|
|
src: url(https://cdn.marmot-cloud.com/storage/zenmux/2026/01/30/3TdWyBD/NotoSerif-Light.ttf)format("truetype")
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Noto Serif";
|
|
font-style: normal;
|
|
font-weight: 500;
|
|
font-display: fallback;
|
|
src: url(https://cdn.marmot-cloud.com/storage/zenmux/2026/01/30/csSK6pH/NotoSerif-Regular.ttf)format("truetype")
|
|
}
|
|
|
|
@font-face {
|
|
font-family: "Noto Serif";
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
font-display: fallback;
|
|
src: url(https://cdn.marmot-cloud.com/storage/zenmux/2026/01/30/qSZwJRf/NotoSerif-SemiBold.ttf)format("truetype")
|
|
}
|
|
|
|
.noto-serif {
|
|
font-family: "Noto Serif",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;
|
|
font-feature-settings: "kern"1;
|
|
text-rendering: optimizeLegibility
|
|
}
|
|
|
|
.noto-serif-stable {
|
|
font-family: "Noto Serif",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;
|
|
font-size-adjust: .5;
|
|
letter-spacing: .01em
|
|
}
|
|
|
|
.M-FlipCard {
|
|
display: inline-block;
|
|
position: relative;
|
|
width: 48px;
|
|
height: 68px;
|
|
border-radius: 5px;
|
|
font-size: 66px;
|
|
box-shadow: 0 1px 1px 0 rgba(0,0,0,.102);
|
|
font-family: "DIN Condensed", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
font-weight: 700;
|
|
font-style: bold;
|
|
font-size: 70px;
|
|
letter-spacing: 0%;
|
|
text-align: center;
|
|
line-height: 1.23;
|
|
color: #000;
|
|
}
|
|
|
|
.M-FlipCard.flip-win {
|
|
line-height: 68px
|
|
}
|
|
|
|
.M-FlipCard.flip-win .digital:before {
|
|
line-height: 70px
|
|
}
|
|
|
|
.M-FlipCard.flip-win .digital:after {
|
|
line-height: 3px
|
|
}
|
|
|
|
.M-FlipCard .digital:before,.M-FlipCard .digital:after {
|
|
content: "";
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
background: #fff;
|
|
overflow: hidden;
|
|
box-sizing: border-box;
|
|
/* 继承翻牌组件的字体 */
|
|
font-family: inherit;
|
|
font-weight: inherit;
|
|
font-size: inherit;
|
|
}
|
|
|
|
.M-FlipCard .digital:before {
|
|
top: 0;
|
|
bottom: 50%;
|
|
border-radius: 5px 5px 0 0;
|
|
border-bottom: solid 1px#e6e6e6
|
|
}
|
|
|
|
.M-FlipCard .digital:after {
|
|
top: 50%;
|
|
bottom: 0;
|
|
border-radius: 0 0 5px 5px;
|
|
line-height: .3
|
|
}
|
|
|
|
.M-FlipCard.down .front:before {
|
|
z-index: 3
|
|
}
|
|
|
|
.M-FlipCard.down .back:after {
|
|
z-index: 2;
|
|
transform-origin: 50%0%;
|
|
transform: perspective(160px)rotatex(180deg)
|
|
}
|
|
|
|
.M-FlipCard.down .front:after,.M-FlipCard.down .back:before {
|
|
z-index: 1
|
|
}
|
|
|
|
.M-FlipCard.down.go .front:before {
|
|
transform-origin: 50%100%;
|
|
-webkit-animation: frontFlipDown var(--flipduration)linear both;
|
|
animation: frontFlipDown var(--flipduration)linear both;
|
|
box-shadow: 0 -2px 6px rgba(255,255,255,.3);
|
|
backface-visibility: hidden
|
|
}
|
|
|
|
.M-FlipCard.down.go .back:after {
|
|
-webkit-animation: backFlipDown var(--flipduration)linear both;
|
|
animation: backFlipDown var(--flipduration)linear both
|
|
}
|
|
|
|
.M-FlipCard.up .front:after {
|
|
z-index: 3
|
|
}
|
|
|
|
.M-FlipCard.up .back:before {
|
|
z-index: 2;
|
|
transform-origin: 50%100%;
|
|
transform: perspective(160px)rotatex(-180deg)
|
|
}
|
|
|
|
.M-FlipCard.up .front:before,.M-FlipCard.up .back:after {
|
|
z-index: 1
|
|
}
|
|
|
|
.M-FlipCard.up.go .front:after {
|
|
transform-origin: 50%0;
|
|
-webkit-animation: frontFlipUp var(--flipduration)linear both;
|
|
animation: frontFlipUp var(--flipduration)linear both;
|
|
box-shadow: 0 2px 6px rgba(255,255,255,.3);
|
|
backface-visibility: hidden
|
|
}
|
|
|
|
.M-FlipCard.up.go .back:before {
|
|
-webkit-animation: backFlipUp var(--flipduration)linear both;
|
|
animation: backFlipUp var(--flipduration)linear both
|
|
}
|
|
|
|
@keyframes frontFlipDown {
|
|
0% {
|
|
background-color: #fff;
|
|
transform: perspective(160px)rotatex(0)
|
|
}
|
|
|
|
50% {
|
|
background-color: #f5f5f5;
|
|
transform: perspective(160px)rotatex(-90deg)
|
|
}
|
|
|
|
to {
|
|
background-color: #fff;
|
|
transform: perspective(160px)rotatex(-180deg)
|
|
}
|
|
}
|
|
|
|
@keyframes backFlipDown {
|
|
0% {
|
|
background-color: #fff;
|
|
transform: perspective(160px)rotatex(180deg)
|
|
}
|
|
|
|
50% {
|
|
background-color: #f5f5f5;
|
|
transform: perspective(160px)rotatex(90deg)
|
|
}
|
|
|
|
to {
|
|
background-color: #fff;
|
|
transform: perspective(160px)rotatex(0)
|
|
}
|
|
}
|
|
|
|
@keyframes frontFlipUp {
|
|
0% {
|
|
transform: perspective(160px)rotatex(0)
|
|
}
|
|
|
|
to {
|
|
transform: perspective(160px)rotatex(180deg)
|
|
}
|
|
}
|
|
|
|
@keyframes backFlipUp {
|
|
0% {
|
|
transform: perspective(160px)rotatex(-180deg)
|
|
}
|
|
|
|
to {
|
|
transform: perspective(160px)rotatex(0)
|
|
}
|
|
}
|
|
|
|
.M-FlipCard .number0:before,.M-FlipCard .number0:after {
|
|
content: "0"
|
|
}
|
|
|
|
.M-FlipCard .number1:before,.M-FlipCard .number1:after {
|
|
content: "1"
|
|
}
|
|
|
|
.M-FlipCard .number2:before,.M-FlipCard .number2:after {
|
|
content: "2"
|
|
}
|
|
|
|
.M-FlipCard .number3:before,.M-FlipCard .number3:after {
|
|
content: "3"
|
|
}
|
|
|
|
.M-FlipCard .number4:before,.M-FlipCard .number4:after {
|
|
content: "4"
|
|
}
|
|
|
|
.M-FlipCard .number5:before,.M-FlipCard .number5:after {
|
|
content: "5"
|
|
}
|
|
|
|
.M-FlipCard .number6:before,.M-FlipCard .number6:after {
|
|
content: "6"
|
|
}
|
|
|
|
.M-FlipCard .number7:before,.M-FlipCard .number7:after {
|
|
content: "7"
|
|
}
|
|
|
|
.M-FlipCard .number8:before,.M-FlipCard .number8:after {
|
|
content: "8"
|
|
}
|
|
|
|
.M-FlipCard .number9:before,.M-FlipCard .number9:after {
|
|
content: "9"
|
|
}
|
|
|
|
html[data-theme-mode=dark] .M-FlipCard {
|
|
color: #fff
|
|
}
|
|
|
|
html[data-theme-mode=dark] .M-FlipCard .digital:before,html[data-theme-mode=dark] .M-FlipCard .digital:after {
|
|
background: #333
|
|
}
|
|
|
|
html[data-theme-mode=dark] .M-FlipCard .digital:before {
|
|
border-bottom-color: #444
|
|
}
|
|
|
|
@keyframes frontFlipDownDark {
|
|
0% {
|
|
background-color: #333;
|
|
transform: perspective(160px)rotatex(0)
|
|
}
|
|
|
|
50% {
|
|
background-color: #2a2a2a;
|
|
transform: perspective(160px)rotatex(-90deg)
|
|
}
|
|
|
|
to {
|
|
background-color: #333;
|
|
transform: perspective(160px)rotatex(-180deg)
|
|
}
|
|
}
|
|
|
|
@keyframes backFlipDownDark {
|
|
0% {
|
|
background-color: #333;
|
|
transform: perspective(160px)rotatex(180deg)
|
|
}
|
|
|
|
50% {
|
|
background-color: #2a2a2a;
|
|
transform: perspective(160px)rotatex(90deg)
|
|
}
|
|
|
|
to {
|
|
background-color: #333;
|
|
transform: perspective(160px)rotatex(0)
|
|
}
|
|
}
|
|
|
|
|
|
.blurry {
|
|
background: rgba(0, 0, 0, 0.28);
|
|
backdrop-filter: blur(6px);
|
|
-webkit-backdrop-filter: blur(6px);
|
|
border-radius: 14px;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
|
|
/* ── Mobile: headline backdrop 仅在 md+ 显示,移动端用纯透明渐变遮罩代替 ── */
|
|
@media (max-width: 767px) {
|
|
.hero-headline {
|
|
/* 移动端简化背景:柔和深色毛玻璃,增强可读性 */
|
|
background: rgba(0, 0, 0, 0.28);
|
|
backdrop-filter: blur(6px);
|
|
-webkit-backdrop-filter: blur(6px);
|
|
border-radius: 14px;
|
|
padding: 14px 16px 12px;
|
|
width: calc(100vw - 32px);
|
|
box-sizing: border-box;
|
|
}
|
|
/* 移动端 h1 去掉 px,由父级 padding 控制 */
|
|
.hero-headline h1 {
|
|
padding-left: 0 !important;
|
|
padding-right: 0 !important;
|
|
}
|
|
}
|
|
|
|
/* ── Mobile: 输入框容器宽度修正 ── */
|
|
@media (max-width: 767px) {
|
|
.hero-input-wrap {
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
}
|
|
/* 发送按钮文字在极小屏不换行 */
|
|
.sendBtn > div {
|
|
white-space: nowrap;
|
|
}
|
|
}
|
|
|
|
/* ── Mobile: 按钮组在移动端全宽展示,企业感间距 ── */
|
|
@media (max-width: 639px) {
|
|
.hero-actions {
|
|
position: relative;
|
|
}
|
|
.hero-actions a {
|
|
width: 100%;
|
|
}
|
|
.hero-actions a button {
|
|
border-radius: 10px;
|
|
font-size: 15px;
|
|
height: 48px;
|
|
}
|
|
}
|
|
|
|
/* ── Mobile: 底部统计翻牌区 移动端隐藏(原逻辑保留) ── */
|
|
@media (max-width: 767px) {
|
|
.hero-stats {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
|
|
/* ── 极小屏 (<375px) 紧凑模式 ── */
|
|
@media (max-width: 374px) {
|
|
.hero-headline {
|
|
padding: 10px 12px;
|
|
}
|
|
.hero-actions a button {
|
|
height: 44px;
|
|
font-size: 14px;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* =========================================
|
|
全局智能磨砂滚动条 (复制此段代码到 <head>)
|
|
========================================= */
|
|
|
|
html {
|
|
/* 定义基础变量 */
|
|
--sb-size: 6px;
|
|
--sb-track: transparent;
|
|
/*
|
|
技巧:利用 mix-blend-mode: difference 让滑块颜色自动反转
|
|
无论背景黑还是白,它都会变成对比色,实现全自动适配
|
|
*/
|
|
--sb-thumb-blend: difference;
|
|
--sb-thumb-color: rgba(200, 200, 200, 0.5);
|
|
--sb-thumb-hover: rgba(255, 255, 255, 0.8);
|
|
}
|
|
|
|
/* 针对滚动条容器 */
|
|
html, body, * {
|
|
scrollbar-width: thin; /* Firefox */
|
|
scrollbar-color: rgba(128, 128, 128, 0.3) transparent;
|
|
}
|
|
|
|
/* 定义滚动条变量 - 核心配置 */
|
|
:root {
|
|
/* 滚动条尺寸 - 更细更低调 */
|
|
--sb-size: 6px;
|
|
/* 轨道背景 - 完全透明 */
|
|
--sb-track: transparent;
|
|
/* 滚动条滑块基础色 - 极低透明度的灰色 */
|
|
--sb-thumb-color: rgba(156, 163, 175, 0.15);
|
|
/* 混合模式 - 叠加模式增强融合性 */
|
|
--sb-thumb-blend: overlay;
|
|
/* 悬停色 - 略微提高透明度 */
|
|
--sb-thumb-hover: rgba(156, 163, 175, 0.3);
|
|
}
|
|
/*
|
|
::-webkit-scrollbar {
|
|
width: var(--sb-size);
|
|
height: var(--sb-size);
|
|
background: transparent;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: var(--sb-track);
|
|
border-radius: 10px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background-color: transparent;
|
|
box-shadow: inset 0 0 0 100px rgba(120, 120, 120, 0.08);
|
|
}
|
|
::-webkit-scrollbar-thumb:hover {
|
|
box-shadow: inset 0 0 0 100px rgba(120, 120, 120, 0.2);
|
|
}
|
|
::-webkit-scrollbar-corner {
|
|
background: transparent;
|
|
}
|
|
* {
|
|
scrollbar-width: thin;
|
|
scrollbar-color: rgba(156, 163, 175, 0.15) transparent;
|
|
}*/ |