:root { --main_text_color: #000000; --main_bg_color: linear-gradient(50deg, #a2d0ff, #ffffff); --gradient: linear-gradient(120deg, rgb(133, 62, 255), #f76cc6 30%, rgb(255, 255, 255) 60%); --purple_text_color: #747bff; --text_bg_color: rgb(26, 4, 48); --item_bg_color: rgba(255, 255, 255, 0.35); --item_hover_color: rgba(255, 255, 255, 0.45); --card_filter: 20px; --back_filter: 15px; --back_filter_color: rgba(255, 255, 255, 0.1); --fill: #000000; } html[data-theme="Dark"] { --main_text_color: #fff; --main_bg_color: linear-gradient(50deg, #1a1a2e, #16213e); --gradient: linear-gradient(120deg, rgb(133, 62, 255), #f76cc6 30%, rgb(255, 255, 255) 60%); --purple_text_color: #747bff; --text_bg_color: rgb(26, 4, 48); --item_bg_color: rgba(255, 255, 255, 0.18); --item_hover_color: rgba(255, 255, 255, 0.25); --card_filter: 20px; --back_filter: 15px; --back_filter_color: rgba(0, 0, 0, 0.2); --fill: #ffffff; } * { margin: 0; padding: 0; box-sizing: border-box; user-select: none; transition: background-color 0.2s ease, color 0.2s ease; } body { margin: 0; font-family: 'Arial', sans-serif; background: var(--main_bg_color); background-repeat: no-repeat; background-size: cover; background-position: center; background-attachment: fixed; width: 100vw; min-height: 100vh; overflow-x: hidden; color: var(--main_text_color); } .main-layout { display: flex; flex-direction: row; /* 避免 fixed 页脚/聊天区遮挡:用 footer 高度 + 预留区间替代魔法数 */ height: calc(100vh - (var(--footer-height, 32px) + 68px)); padding: 60px 20px 20px; max-width: 1150px; margin: 0 auto; width: 100%; align-items: stretch; gap: 14px; /* 允许左右溢出显示,避免 logo 两端被父容器裁切 */ overflow-x: visible; overflow-y: hidden; } .left-panel { flex: 0 0 30%; width: 30%; display: flex; justify-content: flex-start; align-items: center; flex-direction: column; padding: 16px 20px; box-sizing: border-box; height: 100%; overflow-y: auto; overflow-x: visible; } .right-panel { flex: 1; width: auto; display: flex; justify-content: flex-start; align-items: stretch; flex-direction: column; padding: 20px 10px 20px 0; box-sizing: border-box; height: 100%; overflow-y: auto; padding-bottom: calc(var(--footer-height, 32px) + 120px); } .left-panel::-webkit-scrollbar, .right-panel::-webkit-scrollbar { width: 0px; height: 0px; } .logo { font-family: 'Pacifico', cursive; font-size: 52px; font-weight: 800; margin: 12px 0; line-height: 1.3; white-space: nowrap; max-width: 100%; overflow: visible; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-size: 200%; background-position: 0%; animation: backgroundSizeAnimation 10s ease-in-out infinite; background-image: var(--gradient); padding: 10px 6px; } .left-avatar { width: 100px; height: 100px; border-radius: 12px; object-fit: cover; margin-top: 6px; margin-bottom: 14px; box-shadow: 0 10px 22px -14px rgba(0, 0, 0, 0.35); } .daily-quote { width: 100%; padding: 16px; margin-bottom: 18px; text-align: center; height: 100px; } .quote-content { font-size: 14px; line-height: 1.5; color: var(--main_text_color); margin-bottom: 8px; font-style: italic; } .quote-author { font-size: 12px; color: var(--main_text_color); opacity: 0.7; text-align: right; } .quote-author:not(:empty)::before { content: "——"; } .left-design { margin-top: auto; padding-top: 14px; font-size: 12px; font-family: 'Pacifico', cursive; font-style: italic; color: var(--main_text_color); opacity: 0.65; white-space: nowrap; } .design-name { position: relative; display: inline-block; cursor: pointer; } .design-name::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 1px; background-color: var(--main_text_color); transition: width 0.3s ease; } .design-name:hover::after { width: 100%; } .intro { backdrop-filter: blur(var(--card_filter)); -webkit-backdrop-filter: blur(var(--card_filter)); background: var(--item_bg_color); border-radius: 13px; padding: 25px; width: 100%; max-width: 400px; transition: transform 0.3s ease, background-color 0.3s ease; } .intro:hover { transform: translateY(-5px); background: var(--item_hover_color); } .intro h3 { font-size: 20px; margin-bottom: 15px; color: var(--main_text_color); } .intro ul { list-style: none; padding: 0; margin-bottom: 20px; } .intro li { margin: 8px 0; font-size: 16px; color: var(--main_text_color); } .intro a { display: block; margin: 8px 0; padding: 10px 15px; background: var(--item_bg_color); border-radius: 8px; text-decoration: none; color: var(--main_text_color); text-align: center; transition: all 0.3s ease; backdrop-filter: blur(var(--card_filter)); } .intro a:hover { background: var(--item_hover_color); transform: translateY(-2px); box-shadow: 0 8px 16px -4px rgba(0, 0, 0, 0.1); } @keyframes backgroundSizeAnimation { 0% { background-position: 100%; } 25% { background-position: 50%; } 50% { background-position: 0%; } 75% { background-position: 50%; } 100% { background-position: 100%; } } .left-tags { width: 100%; display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 18px; } .tag-item { display: inline-flex; align-items: center; justify-content: center; height: 28px; padding: 0 12px; border-radius: 999px; font-size: 13px; background: var(--item_bg_color); backdrop-filter: blur(var(--card_filter)); -webkit-backdrop-filter: blur(var(--card_filter)); border: 1px solid rgba(255, 255, 255, 0.15); transition: transform 0.2s ease; white-space: nowrap; } .tag-item:hover { transform: translateY(-2px); } .gradientText { -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-size: 200%; background-position: 0%; font-family: 'Pacifico', cursive; animation: backgroundSizeAnimation 10s ease-in-out infinite; background-image: var(--gradient); } .purpleText { color: var(--purple_text_color); font-weight: 800; } .right-intro { width: 100%; background: var(--item_bg_color); border-radius: 13px; padding: 12px 18px; text-align: center; backdrop-filter: blur(var(--card_filter)); -webkit-backdrop-filter: blur(var(--card_filter)); height: 120px; } .music-player { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; gap: 12px; min-height: 80px; } .music-info { width: 100%; height: 40px; display: flex; flex-direction: column; justify-content: center; } .music-title { font-size: 18px; font-weight: 700; color: var(--main_text_color); margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; height: 24px; line-height: 24px; } .music-artist { font-size: 14px; color: var(--main_text_color); opacity: 0.7; height: 16px; line-height: 16px; } .music-controls { display: flex; gap: 24px; align-items: center; } .control-btn { background: var(--item_bg_color); border: none; border-radius: 50%; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 14px; color: var(--main_text_color); transition: all 0.3s ease; backdrop-filter: blur(var(--card_filter)); -webkit-backdrop-filter: blur(var(--card_filter)); } .control-btn:hover { transform: scale(1.1); background: var(--item_hover_color); } .play-btn { width: 36px; height: 36px; font-size: 16px; } .future-content { width: 100%; display: flex; justify-content: center; margin: 6px 0 12px; } .section-title { display: flex; align-items: center; gap: 10px; font-size: 26px; font-weight: 800; margin: 22px 0 14px; } .section-title-icon { width: 22px; height: 22px; border-radius: 8px; object-fit: cover; flex-shrink: 0; } .right-section { width: 100%; } .projectList { display: flex; flex-wrap: wrap; gap: 12px; } .projectItem { display: flex; text-decoration: none; color: inherit; background-color: var(--item_bg_color); border-radius: 12px; padding: 15px; height: 110px; width: calc(50% - 6px); backdrop-filter: blur(var(--card_filter)); -webkit-backdrop-filter: blur(var(--card_filter)); transition: opacity 0.3s ease, background-color 0.2s ease, transform 0.3s ease; align-items: center; } .projectItem:hover { background: var(--item_hover_color); transform: translateY(-2px); box-shadow: 0 8px 16px -4px rgba(0, 0, 0, 0.1); } .projectItemLeft { width: 80%; height: 100%; display: flex; flex-direction: column; justify-content: center; } .projectItemLeft h1 { font-size: 16px; font-weight: 700; margin: 0; } .projectItemLeft p { margin-top: 10px; font-size: 13px; opacity: 0.85; line-height: 1.35; } .projectItemRight { overflow: hidden; display: flex; justify-content: center; align-items: center; width: 20%; height: 100%; } .projectItemRight img { width: 40px; height: 40px; border-radius: 10px; object-fit: cover; } /* 默认隐藏 */ .mobile-toggle { display: none; margin: 10px; text-align: center; } /* 全屏按钮样式(仅大屏幕显示) */ #fullscreen-button { position: absolute; right: 12px; top: 7px; background: none; border: none; cursor: pointer; display: flex; align-items: center; transition: top 0.3s ease,transform 0.3s ease-in-out, padding 0.3s ease-in-out; /* 平滑放大动画 */ transform-origin: center center; /* 确保放大时的中心不变 */ } #fullscreen-button:hover { transform: scale(1.10); /* 悬停时上下左右均匀放大 10% */ }