html, body { padding: 0; margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; min-height: 100vh; } :root { --accent: #0078d4; --accent-rgb: 0, 120, 212; --accent-2: #106ebe; --accent-3: #005a9e; --accent-secondary-rgb: 106, 90, 205; --page-gradient: linear-gradient( 135deg, #e3f2fd 0%, #f0f4ff 25%, #f5f7fa 50%, #e8f0f8 75%, #dde8f5 100% ); --page-texture: radial-gradient( circle at 20% 50%, rgba(var(--accent-rgb), 0.03) 0%, transparent 50% ), radial-gradient( circle at 80% 80%, rgba(var(--accent-secondary-rgb), 0.03) 0%, transparent 50% ); --title-gradient: linear-gradient( 135deg, var(--accent) 0%, var(--accent-2) 30%, var(--accent-3) 60%, var(--accent) 100% ); --control-bg: rgba(255, 255, 255, 0.7); --control-border: rgba(255, 255, 255, 0.8); --control-inset: rgba(255, 255, 255, 0.9); --control-fg: #323130; } html[data-design-theme="terminal"] { color-scheme: dark; --accent: #33ff00; --accent-rgb: 51, 255, 0; --accent-2: #33ff00; --accent-3: #33ff00; --accent-secondary-rgb: 255, 176, 0; --page-gradient: #0a0a0a; --page-texture: repeating-linear-gradient( to bottom, rgba(var(--accent-rgb), 0.035) 0px, rgba(var(--accent-rgb), 0.035) 1px, transparent 2px, transparent 4px ), radial-gradient( circle at 50% 50%, rgba(var(--accent-rgb), 0.05) 0%, transparent 60% ); --title-gradient: none; --control-bg: rgba(10, 10, 10, 0.85); --control-border: rgba(var(--accent-rgb), 0.35); --control-inset: transparent; --control-fg: var(--accent); } html[data-design-theme="cyberpunk"] { color-scheme: dark; --cyber-bg: #0a0a0f; --cyber-fg: #e0e0e0; --cyber-card: #12121a; --cyber-muted: #1c1c2e; --cyber-muted-fg: #6b7280; --cyber-border: #2a2a3a; --cyber-accent: #00ff88; --cyber-accent-2: #ff00ff; --cyber-accent-3: #00d4ff; --accent: var(--cyber-accent); --accent-rgb: 0, 255, 136; --accent-2: var(--cyber-accent-2); --accent-3: var(--cyber-accent-3); --accent-secondary-rgb: 255, 0, 255; --page-gradient: var(--cyber-bg); --page-texture: radial-gradient( circle at 18% 22%, rgba(var(--accent-rgb), 0.12) 0%, transparent 55% ), radial-gradient( circle at 82% 78%, rgba(0, 212, 255, 0.1) 0%, transparent 55% ), linear-gradient(rgba(0, 255, 136, 0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 255, 136, 0.045) 1px, transparent 1px); --title-gradient: linear-gradient( 90deg, var(--cyber-accent-2) 0%, var(--cyber-accent-3) 45%, var(--cyber-accent) 100% ); --control-bg: rgba(10, 10, 15, 0.78); --control-border: rgba(0, 255, 136, 0.28); --control-inset: rgba(255, 255, 255, 0.04); --control-fg: var(--cyber-fg); --box-shadow-neon: 0 0 5px #00ff88, 0 0 10px #00ff8840; --box-shadow-neon-sm: 0 0 3px #00ff88, 0 0 6px #00ff8830; --box-shadow-neon-lg: 0 0 10px #00ff88, 0 0 20px #00ff8860, 0 0 40px #00ff8830; --box-shadow-neon-secondary: 0 0 5px #ff00ff, 0 0 20px #ff00ff60; --box-shadow-neon-tertiary: 0 0 5px #00d4ff, 0 0 20px #00d4ff60; --cyber-chamfer: polygon( 0 12px, 12px 0, calc(100% - 12px) 0, 100% 12px, 100% calc(100% - 12px), calc(100% - 12px) 100%, 12px 100%, 0 calc(100% - 12px) ); --cyber-chamfer-sm: polygon( 0 8px, 8px 0, calc(100% - 8px) 0, 100% 8px, 100% calc(100% - 8px), calc(100% - 8px) 100%, 8px 100%, 0 calc(100% - 8px) ); } /* Fluent 2 柔和渐变背景 */ body { background: var(--page-gradient); background-attachment: fixed; position: relative; } /* 添加微妙的纹理层 */ body::before { content: ""; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-image: var(--page-texture); pointer-events: none; z-index: 0; } a { color: inherit; text-decoration: none; } * { box-sizing: border-box; } .container { padding: 0 2rem; position: relative; z-index: 1; } /* 主题控制区 */ .theme-controls { position: fixed; top: 20px; right: 20px; display: flex; gap: 10px; align-items: center; z-index: 1000; } .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .design-theme { position: relative; display: flex; align-items: center; } .design-theme-button { height: 44px; min-width: 118px; border: 1px solid var(--control-border); border-radius: 12px; background: var(--control-bg); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04), inset 0 1px 0 var(--control-inset); padding: 0 34px 0 14px; font: inherit; color: var(--control-fg); cursor: pointer; text-align: center; justify-content: center; position: relative; display: inline-flex; align-items: center; } .design-theme-button::after { content: "\25BE"; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); pointer-events: none; opacity: 0.7; color: var(--control-fg); } .design-theme-button:hover { border-color: rgba(var(--accent-rgb), 0.3); } .design-theme-button:focus-visible { outline: 2px solid rgba(var(--accent-rgb), 0.35); outline-offset: 2px; } .design-theme-list { position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%); min-width: 160px; max-height: 240px; overflow: auto; padding: 6px; margin: 0; list-style: none; border: 1px solid var(--control-border); border-radius: 14px; background: rgba(255, 255, 255, 0.82); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12), 0 6px 12px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.9); z-index: 1001; } html[data-theme="dark"]:not([data-design-theme="terminal"]) .design-theme-list { background: rgba(20, 20, 20, 0.8); box-shadow: 0 12px 30px rgba(0, 0, 0, 0.55), 0 6px 12px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.06); } .design-theme-list [role="option"] { padding: 10px 10px; border-radius: 10px; cursor: pointer; color: var(--control-fg); user-select: none; text-align: center; transition: background-color 0.15s cubic-bezier(0.4, 0, 0.2, 1), color 0.15s cubic-bezier(0.4, 0, 0.2, 1); } .design-theme-list [role="option"]:hover { background: rgba(var(--accent-rgb), 0.12); color: var(--control-fg); } .design-theme-list [role="option"][aria-selected="true"] { background: rgba(var(--accent-rgb), 0.18); color: var(--control-fg); } .design-theme-list [role="option"]:focus-visible { outline: 2px solid rgba(var(--accent-rgb), 0.35); outline-offset: 2px; } /* 主题切换按钮 */ .theme-toggle { width: 44px; height: 44px; border: none; border-radius: 12px; background: var(--control-bg); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); border: 1px solid var(--control-border); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04), inset 0 1px 0 var(--control-inset); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); padding: 0; } .theme-icon { width: 20px; height: 20px; display: block; transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); } .theme-icon-sun { display: none; } .theme-icon-moon { display: block; } html[data-theme="dark"]:not([data-design-theme="terminal"]) .theme-icon-sun { display: block; } html[data-theme="dark"]:not([data-design-theme="terminal"]) .theme-icon-moon { display: none; } .theme-toggle:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(var(--accent-rgb), 0.15), 0 4px 8px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.95); border-color: rgba(var(--accent-rgb), 0.3); color: var(--accent); } .theme-toggle:active { transform: translateY(0); transition: all 0.1s cubic-bezier(0.4, 0, 0.2, 1); } html[data-theme="dark"]:not([data-design-theme="terminal"]) .theme-toggle { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.05); } html[data-theme="dark"]:not([data-design-theme="terminal"]) .design-theme-button { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2), inset 0 1px 0 var(--control-inset); } html[data-theme="dark"]:not([data-design-theme="terminal"]) .theme-toggle:hover { border-color: rgba(var(--accent-rgb), 0.4); box-shadow: 0 8px 24px rgba(var(--accent-rgb), 0.25), 0 4px 8px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); color: var(--accent); } .main { padding: 3rem 0; flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; z-index: 1; } .title { line-height: 1.3; font-size: 2.5rem; font-weight: 600; text-align: center; margin-bottom: 0.5rem; color: #1a1a1a; letter-spacing: -0.02em; } /* Fluent 2 风格的标题渐变 - 使用 Fluent 蓝系 */ .title { background: var(--title-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; } .title, .description { text-align: center; } .description { margin: 4rem 0; line-height: 1.5; font-size: 1.5rem; } .grid { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; max-width: 800px; } /* Fluent 2 亚克力玻璃卡片 */ .card { width: 100%; margin: 1rem; padding: 1.5rem; text-align: left; color: inherit; text-decoration: none; max-width: 300px; /* 亚克力玻璃效果 */ background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); /* Fluent 2 圆角系统 - 等距圆角 */ border-radius: 12px; /* 高光描边效果 */ border: 1px solid rgba(255, 255, 255, 0.8); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.9); /* Fluent 交互动效 - 轻量空间变化 */ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); transform: translateY(0); position: relative; } .card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border-radius: 12px; padding: 1px; background: linear-gradient( 135deg, rgba(var(--accent-rgb), 0.1) 0%, rgba(255, 255, 255, 0.3) 50%, rgba(var(--accent-rgb), 0.1) 100% ); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1); pointer-events: none; } .card.pin { background: rgba(247, 247, 247, 0.75); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); } /* Fluent 2 Hover 效果 - 轻量上浮 */ .card:hover, .card:focus { color: var(--accent); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(var(--accent-rgb), 0.15), 0 4px 8px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.95); border-color: rgba(var(--accent-rgb), 0.3); } .card:hover::before, .card:focus::before { opacity: 1; } .card:active { transform: translateY(0); transition: all 0.1s cubic-bezier(0.4, 0, 0.2, 1); } .card h2 { margin: 0; font-size: 1.25rem; font-weight: 600; color: #1a1a1a; letter-spacing: -0.01em; transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1); } .card:hover h2, .card:focus h2 { color: var(--accent); } .card .title-icon { display: flex; align-items: center; margin-bottom: 1rem; gap: 0.75rem; } .card .title-icon img { width: 32px; height: 32px; transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1)); } .card:hover .title-icon img, .card:focus .title-icon img { transform: scale(1.05); } .card p { margin: 0; font-size: 0.9375rem; line-height: 1.6; color: #605e5c; transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1); } .card:hover p, .card:focus p { color: #323130; } .card .single { text-overflow: ellipsis; overflow: hidden; word-break: break-all; white-space: nowrap; } .beian { margin-bottom: 24px; margin-top: 32px; text-align: center; } .beian img { width: 14px; height: 14px; margin: 0 4px; vertical-align: middle; } .beian a { text-decoration: none; font-size: 13px; color: #605e5c; transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1); } .beian a:hover { color: var(--accent); } @keyframes terminal-cursor-blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } } @keyframes cyberpunk-rgbShift { 0%, 100% { text-shadow: -2px 0 rgba(255, 0, 255, 0.65), 2px 0 rgba(0, 212, 255, 0.65), 0 0 18px rgba(0, 255, 136, 0.25); } 50% { text-shadow: 2px 0 rgba(255, 0, 255, 0.65), -2px 0 rgba(0, 212, 255, 0.65), 0 0 22px rgba(0, 255, 136, 0.3); } } @keyframes cyberpunk-glitch { 0%, 92%, 100% { clip-path: inset(0 0 0 0); transform: translate3d(0, 0, 0); opacity: 0.65; } 93% { clip-path: inset(12% 0 72% 0); transform: translate3d(-2px, 0, 0); opacity: 0.95; } 94% { clip-path: inset(58% 0 18% 0); transform: translate3d(2px, 1px, 0); } 95% { clip-path: inset(34% 0 52% 0); transform: translate3d(-1px, -1px, 0); } } @keyframes cyberpunk-scanline { 0% { background-position: 0 0, 0 -220px; } 100% { background-position: 0 0, 0 calc(100vh + 220px); } } @keyframes cyberpunk-blink { 50% { opacity: 0; } } html[data-design-theme="terminal"] body { font-family: ui-monospace, "JetBrains Mono", "Fira Code", "VT323", Menlo, Consolas, "Liberation Mono", monospace; letter-spacing: 0.01em; color: var(--accent); } html[data-design-theme="terminal"] .theme-controls { gap: 12px; } html[data-design-theme="terminal"] .design-theme-button, html[data-design-theme="terminal"] .theme-toggle { border-radius: 0; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; border: 1px solid rgba(var(--accent-rgb), 0.55); } html[data-design-theme="terminal"] .theme-toggle { cursor: not-allowed; } html[data-design-theme="terminal"] .design-theme-button:hover, html[data-design-theme="terminal"] .theme-toggle:hover { background: var(--accent); color: #0a0a0a; border-color: var(--accent); transform: none; } html[data-design-theme="terminal"] .design-theme-button::after { color: currentColor; } html[data-design-theme="terminal"] .design-theme-list { border-radius: 0; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(10, 10, 10, 0.92); border: 1px solid rgba(var(--accent-rgb), 0.55); } html[data-design-theme="terminal"] .design-theme-list [role="option"] { border-radius: 0; text-transform: uppercase; } html[data-design-theme="terminal"] .design-theme-list [role="option"]:hover, html[data-design-theme="terminal"] .design-theme-list [role="option"][aria-selected="true"] { background: var(--accent); color: #0a0a0a; } html[data-design-theme="terminal"] .title { background: none; -webkit-text-fill-color: currentColor; color: var(--accent); text-shadow: 0 0 5px rgba(var(--accent-rgb), 0.5); text-transform: uppercase; letter-spacing: 0.04em; position: relative; } html[data-design-theme="terminal"] .title::after { content: "\2588"; margin-left: 8px; animation: terminal-cursor-blink 1s step-end infinite; } html[data-design-theme="terminal"] .card { border-radius: 0; background: transparent; border: 1px solid rgba(var(--accent-rgb), 0.35); box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; transform: none; } html[data-design-theme="terminal"] .card::before { display: none; } html[data-design-theme="terminal"] .card h2, html[data-design-theme="terminal"] .card p, html[data-design-theme="terminal"] .beian a { color: var(--accent); text-shadow: 0 0 5px rgba(var(--accent-rgb), 0.25); } html[data-design-theme="terminal"] .card:hover, html[data-design-theme="terminal"] .card:focus { background: rgba(var(--accent-rgb), 0.06); border-color: var(--accent); box-shadow: none; } html[data-design-theme="terminal"] .card:hover h2, html[data-design-theme="terminal"] .card:focus h2 { color: var(--accent); } html[data-design-theme="terminal"] .beian a:hover { background: var(--accent); color: #0a0a0a; text-shadow: none; } html[data-design-theme="cyberpunk"] body { font-family: ui-monospace, "JetBrains Mono", "Fira Code", Menlo, Consolas, "Liberation Mono", monospace; letter-spacing: 0.02em; color: var(--cyber-fg); } html[data-design-theme="cyberpunk"] body::before { background-size: auto, auto, 50px 50px, 50px 50px; } html[data-design-theme="cyberpunk"] body::after { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 0; opacity: 0.55; background: repeating-linear-gradient( 0deg, transparent 0px, transparent 2px, rgba(0, 0, 0, 0.35) 2px, rgba(0, 0, 0, 0.35) 4px ), linear-gradient( 180deg, transparent 0%, rgba(0, 255, 136, 0.12) 50%, transparent 100% ); background-size: auto, 100% 220px; background-position: 0 0, 0 -220px; animation: cyberpunk-scanline 9s linear infinite; } html[data-design-theme="cyberpunk"] .theme-controls { gap: 12px; } html[data-design-theme="cyberpunk"] .design-theme-button, html[data-design-theme="cyberpunk"] .theme-toggle { border-radius: 0; clip-path: var(--cyber-chamfer-sm); backdrop-filter: none; -webkit-backdrop-filter: none; border: 1px solid rgba(var(--accent-rgb), 0.5); background: rgba(10, 10, 15, 0.88); box-shadow: var(--box-shadow-neon-sm); text-transform: uppercase; letter-spacing: 0.12em; } html[data-design-theme="cyberpunk"] .design-theme-button:hover, html[data-design-theme="cyberpunk"] .theme-toggle:hover { border-color: rgba(var(--accent-rgb), 0.9); box-shadow: var(--box-shadow-neon); transform: translateY(-1px); } html[data-design-theme="cyberpunk"] .design-theme-button:focus-visible, html[data-design-theme="cyberpunk"] .theme-toggle:focus-visible { outline: 2px solid rgba(var(--accent-rgb), 0.65); outline-offset: 3px; box-shadow: var(--box-shadow-neon); } html[data-design-theme="cyberpunk"] .theme-toggle { cursor: not-allowed; opacity: 0.72; } html[data-design-theme="cyberpunk"] .theme-icon-sun { display: none; } html[data-design-theme="cyberpunk"] .theme-icon-moon { display: block; } html[data-design-theme="cyberpunk"] .design-theme-list { border-radius: 0; clip-path: var(--cyber-chamfer); background: rgba(10, 10, 15, 0.92); border: 1px solid rgba(var(--accent-rgb), 0.45); box-shadow: var(--box-shadow-neon-sm); backdrop-filter: none; -webkit-backdrop-filter: none; } html[data-design-theme="cyberpunk"] .design-theme-list [role="option"] { border-radius: 0; clip-path: var(--cyber-chamfer-sm); text-transform: uppercase; letter-spacing: 0.14em; } html[data-design-theme="cyberpunk"] .design-theme-list [role="option"]:hover, html[data-design-theme="cyberpunk"] .design-theme-list [role="option"][aria-selected="true"] { background: rgba(var(--accent-rgb), 0.14); color: var(--cyber-fg); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.55); } html[data-design-theme="cyberpunk"] .title { background: var(--title-gradient); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; text-transform: uppercase; letter-spacing: 0.08em; position: relative; filter: drop-shadow(0 0 14px rgba(0, 255, 136, 0.24)); animation: cyberpunk-rgbShift 4.5s ease-in-out infinite; } html[data-design-theme="cyberpunk"] .title::before, html[data-design-theme="cyberpunk"] .title::after { content: attr(data-text); position: absolute; left: 0; top: 0; width: 100%; pointer-events: none; opacity: 0.65; mix-blend-mode: screen; } html[data-design-theme="cyberpunk"] .title::before { transform: translate3d(-2px, 0, 0); color: rgba(255, 0, 255, 0.85); animation: cyberpunk-glitch 6.2s steps(2, end) infinite; } html[data-design-theme="cyberpunk"] .title::after { transform: translate3d(2px, 0, 0); color: rgba(0, 212, 255, 0.85); animation: cyberpunk-glitch 5.3s steps(2, end) infinite reverse; } html[data-design-theme="cyberpunk"] .subtitle { color: var(--cyber-muted-fg); letter-spacing: 0.14em; text-transform: uppercase; } html[data-design-theme="cyberpunk"] .subtitle::after { content: "\2588"; margin-left: 8px; color: rgba(var(--accent-rgb), 0.85); animation: cyberpunk-blink 1s step-end infinite; } html[data-design-theme="cyberpunk"] .card { border-radius: 0; clip-path: var(--cyber-chamfer); background: rgba(18, 18, 26, 0.92); border: 1px solid rgba(42, 42, 58, 0.92); box-shadow: 0 0 0 1px rgba(var(--accent-rgb), 0.12), 0 10px 28px rgba(0, 0, 0, 0.55), var(--box-shadow-neon-sm); backdrop-filter: none; -webkit-backdrop-filter: none; transform: translateY(0); transition: all 120ms steps(4, end); } html[data-design-theme="cyberpunk"] .card::before { display: none; } html[data-design-theme="cyberpunk"] .card h2 { color: var(--cyber-fg); text-transform: uppercase; letter-spacing: 0.06em; } html[data-design-theme="cyberpunk"] .card p { color: var(--cyber-muted-fg); } html[data-design-theme="cyberpunk"] .card:hover, html[data-design-theme="cyberpunk"] .card:focus { color: var(--cyber-fg); border-color: rgba(var(--accent-rgb), 0.9); transform: translateY(-1px); box-shadow: 0 0 0 1px rgba(var(--accent-rgb), 0.22), 0 12px 34px rgba(0, 0, 0, 0.6), var(--box-shadow-neon-lg); } html[data-design-theme="cyberpunk"] .card:hover h2, html[data-design-theme="cyberpunk"] .card:focus h2 { color: var(--cyber-fg); } html[data-design-theme="cyberpunk"] .card:hover p, html[data-design-theme="cyberpunk"] .card:focus p { color: rgba(224, 224, 224, 0.92); } html[data-design-theme="cyberpunk"] .beian a { color: rgba(224, 224, 224, 0.72); } html[data-design-theme="cyberpunk"] .beian a:hover { color: var(--cyber-accent); text-shadow: 0 0 10px rgba(var(--accent-rgb), 0.28); } @media (max-width: 600px) { .grid { width: 100%; flex-direction: column; } .theme-controls { top: 12px; right: 12px; gap: 8px; } .design-theme-button { min-width: 108px; } } @media (prefers-reduced-motion: reduce) { html[data-design-theme="cyberpunk"] body::after, html[data-design-theme="cyberpunk"] .title, html[data-design-theme="cyberpunk"] .title::before, html[data-design-theme="cyberpunk"] .title::after, html[data-design-theme="cyberpunk"] .subtitle::after, html[data-design-theme="cyberpunk"] .card { animation: none !important; transition-duration: 0.01ms !important; transform: none !important; } } /* Fluent 2 深色模式 */ html[data-theme="dark"]:not([data-design-theme="terminal"]) { color-scheme: dark; --accent: #60cdff; --accent-rgb: 96, 205, 255; --accent-2: #4fc3f7; --accent-3: #29b6f6; --page-gradient: linear-gradient( 135deg, #1a1a1a 0%, #1f1f1f 25%, #1a1a1a 50%, #1d1d1d 75%, #1a1a1a 100% ); --page-texture: radial-gradient( circle at 20% 50%, rgba(var(--accent-rgb), 0.08) 0%, transparent 50% ), radial-gradient( circle at 80% 80%, rgba(var(--accent-secondary-rgb), 0.08) 0%, transparent 50% ); --control-bg: rgba(30, 30, 30, 0.7); --control-border: rgba(255, 255, 255, 0.1); --control-inset: rgba(255, 255, 255, 0.05); --control-fg: #ffffff; } html[data-theme="dark"]:not([data-design-theme="terminal"]) body { color: #ffffff; } html[data-theme="dark"]:not([data-design-theme="terminal"]) .card { background: rgba(30, 30, 30, 0.7); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.05); } html[data-theme="dark"]:not([data-design-theme="terminal"]) .card::before { background: linear-gradient( 135deg, rgba(var(--accent-rgb), 0.2) 0%, rgba(255, 255, 255, 0.1) 50%, rgba(var(--accent-rgb), 0.2) 100% ); } html[data-theme="dark"]:not([data-design-theme="terminal"]) .card h2 { color: #ffffff; } html[data-theme="dark"]:not([data-design-theme="terminal"]) .card:hover h2, html[data-theme="dark"]:not([data-design-theme="terminal"]) .card:focus h2 { color: var(--accent); } html[data-theme="dark"]:not([data-design-theme="terminal"]) .card:hover, html[data-theme="dark"]:not([data-design-theme="terminal"]) .card:focus { border-color: rgba(var(--accent-rgb), 0.4); box-shadow: 0 8px 24px rgba(var(--accent-rgb), 0.25), 0 4px 8px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); } html[data-theme="dark"]:not([data-design-theme="terminal"]) .card p { color: #c8c6c4; } html[data-theme="dark"]:not([data-design-theme="terminal"]) .card:hover p, html[data-theme="dark"]:not([data-design-theme="terminal"]) .card:focus p { color: #e1dfdd; } html[data-theme="dark"]:not([data-design-theme="terminal"]) .pin.card { background: rgba(40, 40, 40, 0.75); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); } html[data-theme="dark"]:not([data-design-theme="terminal"]) .beian a { color: #c8c6c4; } html[data-theme="dark"]:not([data-design-theme="terminal"]) .beian a:hover { color: var(--accent); } /* Material You (Material Design 3) */ html[data-design-theme="material-you"] { color-scheme: light; --md-bg: #fffbfe; --md-on-bg: #1c1b1f; --md-primary: #6750a4; --md-on-primary: #ffffff; --md-secondary-container: #e8def8; --md-on-secondary-container: #1d192b; --md-tertiary: #7d5260; --md-surface-container: #f3edf7; --md-surface-container-low: #e7e0ec; --md-outline: #79747e; --md-on-surface-variant: #49454f; --md-ease: cubic-bezier(0.2, 0, 0, 1); --accent: var(--md-primary); --accent-rgb: 103, 80, 164; --accent-2: var(--md-primary); --accent-3: var(--md-primary); --accent-secondary-rgb: 125, 82, 96; --page-gradient: radial-gradient( circle at 12% 18%, rgba(var(--accent-rgb), 0.16) 0%, transparent 56% ), radial-gradient( circle at 88% 22%, rgba(232, 222, 248, 0.92) 0%, transparent 58% ), radial-gradient( circle at 22% 90%, rgba(125, 82, 96, 0.1) 0%, transparent 52% ), var(--md-bg); --page-texture: radial-gradient( circle at 18% 32%, rgba(var(--accent-rgb), 0.1) 0%, transparent 48% ), radial-gradient( circle at 78% 76%, rgba(125, 82, 96, 0.08) 0%, transparent 50% ); --title-gradient: linear-gradient( 135deg, var(--md-primary) 0%, rgba(103, 80, 164, 0.92) 40%, var(--md-tertiary) 100% ); --control-bg: rgba(243, 237, 247, 0.78); --control-border: rgba(121, 116, 126, 0.35); --control-inset: rgba(255, 255, 255, 0.7); --control-fg: var(--md-on-bg); } html[data-theme="dark"][data-design-theme="material-you"] { color-scheme: dark; --md-bg: #1c1b1f; --md-on-bg: #e6e1e5; --md-primary: #d0bcff; --md-on-primary: #381e72; --md-secondary-container: #4a4458; --md-on-secondary-container: #e8def8; --md-tertiary: #efb8c8; --md-surface-container: #211f26; --md-surface-container-low: #1f1d24; --md-outline: #938f99; --md-on-surface-variant: #cac4d0; --accent: var(--md-primary); --accent-rgb: 208, 188, 255; --accent-2: var(--md-primary); --accent-3: var(--md-primary); --accent-secondary-rgb: 239, 184, 200; --page-gradient: radial-gradient( circle at 12% 18%, rgba(var(--accent-rgb), 0.12) 0%, transparent 56% ), radial-gradient( circle at 88% 22%, rgba(239, 184, 200, 0.1) 0%, transparent 58% ), radial-gradient( circle at 26% 92%, rgba(232, 222, 248, 0.09) 0%, transparent 55% ), var(--md-bg); --page-texture: radial-gradient( circle at 18% 32%, rgba(var(--accent-rgb), 0.08) 0%, transparent 48% ), radial-gradient( circle at 78% 76%, rgba(239, 184, 200, 0.06) 0%, transparent 50% ); --title-gradient: linear-gradient( 135deg, var(--md-primary) 0%, rgba(208, 188, 255, 0.92) 45%, var(--md-tertiary) 100% ); --control-bg: rgba(33, 31, 38, 0.78); --control-border: rgba(147, 143, 153, 0.35); --control-inset: rgba(255, 255, 255, 0.06); --control-fg: var(--md-on-bg); } html[data-design-theme="material-you"] body { color: var(--md-on-bg); } html[data-design-theme="material-you"] body::after { content: ""; position: fixed; inset: -20vh -20vw; background: radial-gradient( circle at 24% 28%, rgba(var(--accent-rgb), 0.22) 0%, transparent 46% ), radial-gradient( circle at 72% 34%, rgba(232, 222, 248, 0.62) 0%, transparent 52% ), radial-gradient( circle at 78% 88%, rgba(var(--accent-secondary-rgb), 0.18) 0%, transparent 56% ); filter: blur(84px); opacity: 0.65; pointer-events: none; z-index: 0; } html[data-design-theme="material-you"] .design-theme-button, html[data-design-theme="material-you"] .theme-toggle { border-radius: 9999px; transition: all 0.3s var(--md-ease); } html[data-design-theme="material-you"] .design-theme-button::after { content: "\25BE"; } html[data-design-theme="material-you"] .design-theme-button:hover, html[data-design-theme="material-you"] .theme-toggle:hover { background: rgba(var(--accent-rgb), 0.1); border-color: rgba(var(--accent-rgb), 0.35); transform: translateY(-1px); box-shadow: 0 10px 26px rgba(var(--accent-rgb), 0.18), 0 4px 10px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.5); } html[data-design-theme="material-you"] .design-theme-button:active, html[data-design-theme="material-you"] .theme-toggle:active { transform: scale(0.95); transition: all 0.2s var(--md-ease); } html[data-design-theme="material-you"] .design-theme-button:focus-visible, html[data-design-theme="material-you"] .theme-toggle:focus-visible { outline: 2px solid rgba(var(--accent-rgb), 0.5); outline-offset: 3px; } html[data-design-theme="material-you"] .design-theme-list { background: rgba(243, 237, 247, 0.88); border: 1px solid rgba(121, 116, 126, 0.24); border-radius: 20px; box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12), 0 8px 18px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.7); } html[data-theme="dark"][data-design-theme="material-you"] .design-theme-list { background: rgba(33, 31, 38, 0.9); border: 1px solid rgba(147, 143, 153, 0.24); box-shadow: 0 18px 46px rgba(0, 0, 0, 0.52), 0 8px 18px rgba(0, 0, 0, 0.36), inset 0 1px 0 rgba(255, 255, 255, 0.06); } html[data-design-theme="material-you"] .title { font-weight: 500; letter-spacing: -0.01em; } html[data-design-theme="material-you"] .card { background: rgba(243, 237, 247, 0.82); border: none; border-radius: 24px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06), 0 10px 22px rgba(var(--accent-rgb), 0.12); transition: all 0.3s var(--md-ease); } html[data-design-theme="material-you"] .card::before { display: none; } html[data-design-theme="material-you"] .card.pin { background: rgba(231, 224, 236, 0.85); } html[data-design-theme="material-you"] .card:hover, html[data-design-theme="material-you"] .card:focus { color: var(--accent); transform: translateY(-2px) scale(1.02); box-shadow: 0 18px 46px rgba(var(--accent-rgb), 0.22), 0 10px 22px rgba(0, 0, 0, 0.1); } html[data-design-theme="material-you"] .card h2 { color: var(--md-on-bg); font-weight: 500; transition: color 0.3s var(--md-ease); } html[data-design-theme="material-you"] .card p { color: var(--md-on-surface-variant); transition: color 0.3s var(--md-ease); } html[data-design-theme="material-you"] .card:hover p, html[data-design-theme="material-you"] .card:focus p { color: var(--md-on-bg); } html[data-theme="dark"][data-design-theme="material-you"] .card { background: rgba(33, 31, 38, 0.84); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 14px 34px rgba(0, 0, 0, 0.4); } html[data-theme="dark"][data-design-theme="material-you"] .card.pin { background: rgba(31, 29, 36, 0.92); } html[data-theme="dark"][data-design-theme="material-you"] .card:hover, html[data-theme="dark"][data-design-theme="material-you"] .card:focus { box-shadow: 0 22px 60px rgba(0, 0, 0, 0.55), 0 10px 26px rgba(var(--accent-rgb), 0.14); } html[data-design-theme="material-you"] .beian a { color: var(--md-on-surface-variant); } html[data-design-theme="material-you"] .beian a:hover { color: var(--accent); } @media (prefers-reduced-motion: reduce) { html[data-design-theme="material-you"] .card, html[data-design-theme="material-you"] .design-theme-button, html[data-design-theme="material-you"] .theme-toggle, html[data-design-theme="material-you"] .theme-icon { transition-duration: 0.01ms !important; transform: none !important; } }