@charset "UTF-8";

:root {
  --bg-primary: #E8EEFA;
  --bg-card: #FFFFFF;
  --text-primary: #1A1A2E;
  --text-secondary: #5A6A85;
  --text-muted: #7A8A9E;
  --accent-color: #4A6CF7;
  --card-bg: #FFFFFF;
  --card-shadow: 0px 0px 8px 0px rgba(0, 0, 30, 0.06);
  --magical-bg: #FFFFFF;
  --magical-border-from: rgba(160, 175, 200, 0.4);
  --magical-border-to: rgba(160, 175, 200, 0.15);
  --magical-glow: rgba(74, 108, 247, 0.18);
  --magical-hover-fill: rgba(74, 108, 247, 0.04);
  --shape-light-color: rgba(74, 108, 247, 0.25);
  --shape-earth-bg: #E8EEFA;
  --title-gradient-from: #1A1A2E;
  --title-gradient-to: rgba(26, 26, 46, 0.72);
  --dot-color: rgba(0, 0, 0, 0.18);
  --divider-color: #B8C4D8;
  --star-color: #8A9AB0;
  --footer-text: #7A8A9E;
  --footer-hover: #4A6CF7;
  --name-gradient-from: #A29CD3;
  --name-gradient-to: #6B8ED4;
}

[data-theme="dark"] {
  --bg-primary: #0E0E13;
  --bg-card: #141419;
  --text-primary: #E8E8F6;
  --text-secondary: #B3B3C1;
  --text-muted: #62616F;
  --accent-color: #6361DC;
  --card-bg: #141419;
  --card-shadow: 0px 0px 8px 0px rgba(10, 10, 14, 0.4);
  --magical-bg: #0E0E13;
  --magical-border-from: rgba(78, 78, 100, 0.48);
  --magical-border-to: rgba(78, 78, 100, 0.2);
  --magical-glow: rgba(255, 255, 255, 0.3);
  --magical-hover-fill: rgba(255, 255, 255, 0.01);
  --shape-light-color: rgba(99, 97, 220, 0.4);
  --shape-earth-bg: #0E0E13;
  --title-gradient-from: #E8E8F6;
  --title-gradient-to: rgba(232, 232, 246, 0.72);
  --dot-color: rgba(255, 255, 255, 0.35);
  --divider-color: #4E4E64;
  --star-color: #fff;
  --footer-text: #62616F;
  --footer-hover: #6361DC;
  --name-gradient-from: #A29CD3;
  --name-gradient-to: #E8BFAC;
}

.theme-lock,
.theme-lock *,
.theme-lock *::before,
.theme-lock *::after {
  transition: none !important;
  animation: none !important;
}

html:not(.theme-lock) body,
html:not(.theme-lock) .index,
html:not(.theme-lock) .magical,
html:not(.theme-lock) .link-card-item,
html:not(.theme-lock) .hello,
html:not(.theme-lock) .quickly-link,
html:not(.theme-lock) .widget .shape-light,
html:not(.theme-lock) .widget .shape-earth,
html:not(.theme-lock) .app-footer,
html:not(.theme-lock) .hello-desc,
html:not(.theme-lock) .info-desc,
html:not(.theme-lock) .info-title,
html:not(.theme-lock) .title-hi,
html:not(.theme-lock) .title-name,
html:not(.theme-lock) .content-divider {
  transition: background-color 0.5s ease, color 0.5s ease, box-shadow 0.5s ease, opacity 0.5s ease;
}

html:not(.theme-lock) .title-hi,
html:not(.theme-lock) .info-title {
  transition: background 0.5s ease;
}

html:not(.theme-lock) .title-name {
  transition: background 0.5s ease;
}

/* ========================================
   星玖工作室 Ntarstudio - 全局样式表
   设计语言：暗色/亮色双主题，仅黑白灰 + 品牌蓝/紫
   适配：移动端 / 桌面端 / PWA 独立窗口 / iOS Web App
   ======================================== */

/* ========================================
   1. 响应式布局 - 移动端适配
   ======================================== */
@media screen and (max-width: 768px) {
  .hello::after {
    width: 320px !important;
    height: 320px !important;
  }
}

/* ========================================
   2. 全局样式重置与基础设置
   ======================================== */

/* 禁止用户选择文本（全局） */
* {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* 允许输入框内的文本选择 */
input, textarea {
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

/* 基础重置 */
* {
  border: 0;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  list-style: none;
  font-size: 12px;
  text-decoration: unset;
}

/* HTML 根元素 */
html {
  overflow: hidden;
  height: 100%;
}

/* Body 主体样式 */
body {
  background-color: var(--bg-primary);
  color: var(--text-primary);
  font-family: Roboto, system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  overflow-y: auto;
  min-height: 100vh;
  position: relative;
  height: 100%;
  /* 隐藏滚动条 */
  scrollbar-width: none;
  -ms-overflow-style: none;
}

/* 隐藏滚动条（Webkit 浏览器） */
body::-webkit-scrollbar {
  display: none;
}

/* 烟花画布（置于最底层） */
.fireworks {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: -999;
}

/* 链接默认样式 */
a {
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

/* ========================================
   3. 图标样式
   ======================================== */
.icon {
  font-size: 0;
}

/* ========================================
   4. 卡片光晕效果（magical）
   鼠标悬停时显示径向渐变光晕边框 + 内部填充
   ======================================== */

.magical {
  --circle-size: 600px;
  --inset: 1px;
  --border: 6px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--border);
  background-color: var(--magical-bg);
}

.magical::before, .magical::after {
  content: '';
  position: absolute;
  width: calc(100% + var(--inset)*2);
  height: calc(100% + var(--inset)*2);
  border-radius: var(--border);
  inset: calc(0 - var(--inset));
}

/* 光晕边框（鼠标位置跟随） */
.magical::before {
  background: radial-gradient(var(--circle-size) circle at var(--mouse-x) var(--mouse-y), var(--magical-glow), transparent 40%);
  z-index: -1;
}

/* 默认边框渐变 */
.magical::after {
  background: linear-gradient(180deg, var(--magical-border-from) 0%, var(--magical-border-to) 100%);
  z-index: -2;
}

/* 鼠标交互层（JS 动态控制透明度） */
.magical .show {
  width: 100%;
  height: 100%;
  position: absolute;
  border-radius: var(--border);
  opacity: 0;
  pointer-events: none;
  background: radial-gradient(var(--circle-size) circle at var(--mouse-x) var(--mouse-y), var(--magical-hover-fill), transparent 40%);
}

/* ========================================
   5. 页脚样式
   ======================================== */
.app-footer {
  padding: 20px 16px 24px;
  text-align: center;
  margin-top: 0;
}

.app-footer .footer-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.app-footer .footer-beian-link {
  font-size: 12px;
  color: var(--footer-text);
  text-decoration: none;
  transition: color 0.15s ease-in;
}

.app-footer .footer-beian-link:hover {
  color: var(--footer-hover);
}

.app-footer .footer-copyright {
  font-size: 12px;
  color: var(--footer-text);
  letter-spacing: 0.3px;
}

/* ========================================
   6. 底部装饰元素（光效 / 上升星星 / 地球）
   ======================================== */

/* 底部 Widget 容器 */
.widget {
  display: flex;
  justify-content: center;
  align-items: center;
  --mw: 968px;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  pointer-events: none;
  z-index: -1;
}

/* 紫色光晕 */
.widget .shape-light {
  z-index: -3;
  position: absolute;
  bottom: -180px;
  left: 50%;
  transform: translateX(-50%);
  width: 600px;
  height: 200px;
  border-radius: 9999px;
  background: var(--shape-light-color);
  filter: blur(100px);
}

/* 上升星星容器 */
.widget .shape-star {
  position: absolute;
  z-index: -2;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 150px;
  width: var(--mw);
  -webkit-mask-image: linear-gradient(180deg, rgba(217, 217, 217, 0) 0%, rgba(217, 217, 217, 0.8) 25%, #d9d9d9 50%, rgba(217, 217, 217, 0.8) 75%, rgba(217, 217, 217, 0) 100%);
  mask-image: linear-gradient(180deg, rgba(217, 217, 217, 0) 0%, rgba(217, 217, 217, 0.8) 25%, #d9d9d9 50%, rgba(217, 217, 217, 0.8) 75%, rgba(217, 217, 217, 0) 100%);
  -webkit-mask-size: cover;
  mask-size: cover;
}

/* 星星上升动画 */
@keyframes risingStarsAnination {
  0% {
    transform: translateZ(0) translateY(0);
  }
  to {
    transform: translateZ(0) translateY(-2000px);
  }
}

.widget .shape-star .rising-stars {
  opacity: .7;
  pointer-events: none;
  will-change: transform;
}

.widget .shape-star .rising-stars div {
  background: transparent;
  border-radius: 50%;
  will-change: transform;
}

/* 星星层 1 - 100s 循环，随机起始点 */
.widget .shape-star .rising-stars div:nth-child(1) {
  animation-duration: 100s !important;
  animation-delay: -37s;
  box-shadow: 136px 13273px var(--star-color),347px 1735px var(--star-color),813px 1674px var(--star-color),1949px 440px var(--star-color),1440px 41px var(--star-color),437px 1122px var(--star-color),406px 430px var(--star-color),1014px 25px var(--star-color),1330px 1616px var(--star-color),1636px 1496px var(--star-color),1358px 800px var(--star-color),48px 857px var(--star-color),900px 1821px var(--star-color),906px 1975px var(--star-color),832px 163px var(--star-color),1911px 1480px var(--star-color),576px 523px var(--star-color),783px 1435px var(--star-color),738px 1712px var(--star-color),1822px 193px var(--star-color),1168px 1172px var(--star-color),480px 687px var(--star-color),798px 337px var(--star-color),1747px 824px var(--star-color),1296px 1690px var(--star-color),1277px 1786px var(--star-color),1941px 1271px var(--star-color),1925px 784px var(--star-color),400px 1302px var(--star-color),112px 882px var(--star-color),1008px 1624px var(--star-color),55px 1604px var(--star-color),1143px 1555px var(--star-color),1354px 1344px var(--star-color),1687px 601px var(--star-color),651px 617px var(--star-color),984px 1737px var(--star-color),505px 1689px var(--star-color),634px 1460px var(--star-color),770px 827px var(--star-color),315px 833px var(--star-color),192px 1677px var(--star-color),1324px 580px var(--star-color),1862px 1217px var(--star-color),157px 1255px var(--star-color),1265px 1949px var(--star-color),259px 482px var(--star-color),1925px 39px var(--star-color),1823px 1401px var(--star-color),172px 1227px var(--star-color),1120px 662px var(--star-color),621px 681px var(--star-color),959px 1389px var(--star-color),370px 367px var(--star-color),1629px 754px var(--star-color),117px 756px var(--star-color),415px 19px var(--star-color),1158px 1227px var(--star-color),36px 322px var(--star-color),315px 1172px var(--star-color),1156px 1010px var(--star-color),758px 828px var(--star-color),1576px 1585px var(--star-color),725px 1487px var(--star-color),1987px 1199px var(--star-color),832px 827px var(--star-color),1162px 92px var(--star-color),103px 1868px var(--star-color),588px 198px var(--star-color),695px 984px var(--star-color),1256px 1513px var(--star-color),29px 924px var(--star-color),1991px 1022px var(--star-color),317px 932px var(--star-color),114px 1610px var(--star-color),1073px 1420px var(--star-color),1161px 1045px var(--star-color),684px 312px var(--star-color),250px 419px var(--star-color),151px 76px var(--star-color),1228px 400px var(--star-color),1381px 202px var(--star-color),1210px 207px var(--star-color),951px 1633px var(--star-color),1585px 1768px var(--star-color),1187px 1462px var(--star-color),231px 1455px var(--star-color),1457px 1778px var(--star-color),1604px 75px var(--star-color),1952px 1575px var(--star-color),1870px 10px var(--star-color),1240px 1824px var(--star-color),591px 554px var(--star-color),1696px 112px var(--star-color),1618px 662px var(--star-color),860px 1971px var(--star-color),899px 1140px var(--star-color),1334px 285px var(--star-color),1051px 732px var(--star-color),267px 1737px var(--star-color),1363px 965px var(--star-color),1829px 1718px var(--star-color),1966px 1063px var(--star-color),979px 1908px var(--star-color),1654px 1085px var(--star-color),416px 1055px var(--star-color),1758px 576px var(--star-color),1604px 720px var(--star-color),840px 143px var(--star-color),852px 1385px var(--star-color),411px 1808px var(--star-color),992px 28px var(--star-color),1461px 122px var(--star-color),1110px 671px var(--star-color),221px 1734px var(--star-color),1886px 1139px var(--star-color),1963px 1765px var(--star-color),406px 456px var(--star-color),461px 1710px var(--star-color),524px 1305px var(--star-color),905px 1265px var(--star-color),731px 126px var(--star-color),1748px 186px var(--star-color),759px 1511px var(--star-color),1502px 1174px var(--star-color),163px 1326px var(--star-color),1236px 416px var(--star-color),963px 1543px var(--star-color),509px 373px var(--star-color),1965px 942px var(--star-color),1621px 1614px var(--star-color),211px 515px var(--star-color),1064px 990px var(--star-color),475px 715px var(--star-color),1977px 366px var(--star-color),1480px 1801px var(--star-color),693px 701px var(--star-color),944px 628px var(--star-color),1870px 1324px var(--star-color),1745px 442px var(--star-color),753px 1087px var(--star-color),1639px 620px var(--star-color),1838px 1570px var(--star-color),1945px 1028px var(--star-color),1692px 1037px var(--star-color),276px 440px var(--star-color),668px 1787px var(--star-color),440px 1541px var(--star-color),1493px 199px var(--star-color),1930px 1584px var(--star-color),1856px 700px var(--star-color),1161px 682px var(--star-color),1671px 664px var(--star-color),286px 1182px var(--star-color),1933px 1388px var(--star-color),743px 1367px var(--star-color),849px 1823px var(--star-color),136px 25px var(--star-color),568px 102px var(--star-color),659px 687px var(--star-color),27px 211px var(--star-color),1980px 602px var(--star-color),383px 176px var(--star-color),1124px 470px var(--star-color),1143px 100px var(--star-color),1744px 1751px var(--star-color),689px 614px var(--star-color),596px 1867px var(--star-color),710px 883px var(--star-color),637px 202px var(--star-color),1372px 962px var(--star-color),1595px 1650px var(--star-color),1491px 1428px var(--star-color),873px 235px var(--star-color),1127px 582px var(--star-color),700px 140px var(--star-color),1470px 1395px var(--star-color),1133px 1532px var(--star-color),1736px 1749px var(--star-color),1841px 228px var(--star-color),529px 1790px var(--star-color),1084px 1246px var(--star-color),1365px 230px var(--star-color),529px 304px var(--star-color),528px 1689px var(--star-color),1549px 1892px var(--star-color),975px 1315px var(--star-color),1924px 1909px var(--star-color),423px 115px var(--star-color),1198px 432px var(--star-color),1081px 956px var(--star-color),1890px 1360px var(--star-color),872px 535px var(--star-color),781px 630px var(--star-color),1010px 197px var(--star-color),651px 125px var(--star-color),1569px 1159px var(--star-color),233px 759px var(--star-color),372px 139px var(--star-color),742px 1233px var(--star-color),302px 1514px var(--star-color),1159px 879px var(--star-color),1536px 213px var(--star-color),1212px 49px var(--star-color),897px 1653px var(--star-color),1735px 765px var(--star-color),1086px 410px var(--star-color),609px 1933px var(--star-color),127px 172px var(--star-color),179px 1873px var(--star-color),584px 299px var(--star-color),861px 1050px var(--star-color),400px 234px var(--star-color),1401px 806px var(--star-color),1086px 47px var(--star-color),1735px 1844px var(--star-color),1874px 1698px var(--star-color),975px 720px var(--star-color),164px 845px var(--star-color),461px 66px var(--star-color),894px 1102px var(--star-color),151px 1968px var(--star-color),258px 1303px var(--star-color),366px 593px var(--star-color),390px 1023px var(--star-color),1296px 661px var(--star-color),308px 285px var(--star-color),554px 1926px var(--star-color),1409px 527px var(--star-color),1661px 316px var(--star-color),101px 439px var(--star-color),1051px 1323px var(--star-color),1144px 1541px var(--star-color),479px 16px var(--star-color),1172px 911px var(--star-color),1087px 1807px var(--star-color),1699px 628px var(--star-color),1859px 1056px var(--star-color),571px 1977px var(--star-color),137px 1578px var(--star-color),906px 847px var(--star-color),1071px 430px var(--star-color),212px 323px var(--star-color),353px 276px var(--star-color),680px 316px var(--star-color),1781px 1151px var(--star-color),137px 1426px var(--star-color),1270px 1679px var(--star-color),696px 220px var(--star-color),587px 184px var(--star-color),704px 795px var(--star-color),1646px 907px var(--star-color),1546px 11px var(--star-color),369px 1976px var(--star-color),1199px 815px var(--star-color),290px 913px var(--star-color),159px 1921px var(--star-color),955px 1406px var(--star-color),748px 1132px var(--star-color),1388px 1674px var(--star-color),1390px 1925px var(--star-color),961px 70px var(--star-color),1015px 927px var(--star-color),470px 64px var(--star-color),1125px 684px var(--star-color),615px 1839px var(--star-color),1318px 1437px var(--star-color),1338px 1130px var(--star-color),295px 1857px var(--star-color),1656px 1208px var(--star-color),1550px 1250px var(--star-color),595px 1523px var(--star-color),943px 1812px var(--star-color),976px 1048px var(--star-color),175px 1883px var(--star-color),641px 1066px var(--star-color),1115px 758px var(--star-color),1726px 1072px var(--star-color),1403px 1085px var(--star-color),1601px 935px var(--star-color),221px 877px var(--star-color),1318px 1484px var(--star-color),1382px 1995px var(--star-color),737px 1875px var(--star-color),772px 1635px var(--star-color),869px 1654px var(--star-color),1179px 18px var(--star-color),518px 695px var(--star-color),691px 1963px var(--star-color),1290px 1259px var(--star-color),121px 1616px var(--star-color),531px 1751px var(--star-color),538px 968px var(--star-color),1492px 1387px var(--star-color),848px 1586px var(--star-color),665px 1946px var(--star-color),307px 984px var(--star-color),593px 1790px var(--star-color),282px 981px var(--star-color),1383px 1886px var(--star-color),1220px 1353px var(--star-color),537px 1893px var(--star-color),1228px 1085px var(--star-color),1415px 532px var(--star-color),660px 982px var(--star-color),308px 1837px var(--star-color),1644px 694px var(--star-color),1137px 296px var(--star-color),1010px 450px var(--star-color),1405px 1366px var(--star-color),1823px 1910px var(--star-color),623px 1983px var(--star-color),585px 716px var(--star-color),1521px 888px var(--star-color),334px 1235px var(--star-color),989px 1957px var(--star-color),1055px 1917px var(--star-color),1012px 1921px var(--star-color),502px 793px var(--star-color),362px 394px var(--star-color),437px 1451px var(--star-color),49px 1224px var(--star-color),1883px 326px var(--star-color),235px 1679px var(--star-color),355px 1148px var(--star-color),204px 907px var(--star-color),1405px 851px var(--star-color),404px 986px var(--star-color),126px 239px var(--star-color),1311px 1960px var(--star-color),1178px 804px var(--star-color),692px 1467px var(--star-color),523px 1043px var(--star-color),259px 1128px var(--star-color),940px 229px var(--star-color),733px 590px var(--star-color),845px 1397px var(--star-color),64px 383px var(--star-color),220px 1136px var(--star-color),307px 48px var(--star-color),1996px 1239px var(--star-color),495px 322px var(--star-color),1245px 1786px var(--star-color),392px 26px var(--star-color),1053px 835px var(--star-color),68px 296px var(--star-color),1165px 63px var(--star-color),1992px 584px var(--star-color),1947px 881px var(--star-color),1012px 205px var(--star-color),419px 1901px var(--star-color),91px 667px var(--star-color),558px 1692px var(--star-color),129px 252px var(--star-color),369px 428px var(--star-color),241px 1865px var(--star-color),289px 1345px var(--star-color),1591px 1655px var(--star-color),29px 585px var(--star-color),489px 885px var(--star-color),342px 307px var(--star-color),589px 658px var(--star-color),1069px 348px var(--star-color),355px 690px var(--star-color),1141px 483px var(--star-color),299px 1211px var(--star-color),217px 1040px var(--star-color),266px 524px var(--star-color),1151px 304px var(--star-color),777px 1096px var(--star-color),1166px 1726px var(--star-color),1332px 819px var(--star-color),986px 1727px var(--star-color),87px 1949px var(--star-color),1962px 83px var(--star-color),133px 708px var(--star-color),1603px 504px var(--star-color),487px 1316px var(--star-color),216px 863px var(--star-color),877px 162px var(--star-color),1234px 1181px var(--star-color),1102px 1118px var(--star-color),509px 475px var(--star-color),621px 935px var(--star-color),658px 589px var(--star-color),665px 1606px var(--star-color),878px 1542px var(--star-color),864px 882px var(--star-color),1070px 1310px var(--star-color),1983px 1146px var(--star-color),1673px 1885px var(--star-color),1008px 351px var(--star-color),1896px 494px var(--star-color),1523px 1071px var(--star-color),1424px 773px var(--star-color),1077px 571px var(--star-color),281px 602px var(--star-color),19px 1135px var(--star-color),852px 1826px var(--star-color),1114px 1291px var(--star-color),956px 257px var(--star-color),1956px 1188px var(--star-color),1779px 284px var(--star-color),204px 613px var(--star-color),1892px 1213px var(--star-color),1787px 1914px var(--star-color),1732px 695px var(--star-color),1497px 375px var(--star-color),1266px 1719px var(--star-color),1668px 1242px var(--star-color),931px 147px var(--star-color),399px 1359px var(--star-color),1626px 518px var(--star-color),840px 1495px var(--star-color),145px 926px var(--star-color),924px 46px var(--star-color),1907px 1649px var(--star-color),953px 1435px var(--star-color),1530px 373px var(--star-color),320px 1346px var(--star-color),1007px 581px var(--star-color),897px 46px var(--star-color),926px 1693px var(--star-color),1187px 370px var(--star-color),69px 939px var(--star-color),64px 1548px var(--star-color),66px 491px var(--star-color),1871px 676px var(--star-color),1240px 722px var(--star-color),1223px 216px var(--star-color),1743px 1566px var(--star-color),1901px 1944px var(--star-color),918px 583px var(--star-color),285px 601px var(--star-color),1303px 263px var(--star-color),1156px 1288px var(--star-color),1897px 61px var(--star-color),463px 1533px var(--star-color),98px 1153px var(--star-color),1430px 1811px var(--star-color),304px 651px var(--star-color),722px 260px var(--star-color),219px 1577px var(--star-color),157px 112px var(--star-color),1146px 1534px var(--star-color),972px 230px var(--star-color),529px 962px var(--star-color),91px 947px var(--star-color),410px 1245px var(--star-color),1556px 586px var(--star-color),591px 1038px var(--star-color),1571px 892px var(--star-color),236px 1129px var(--star-color),976px 1915px var(--star-color),903px 590px var(--star-color),939px 521px var(--star-color),697px 859px var(--star-color),1192px 71px var(--star-color),614px 366px var(--star-color),1197px 1094px var(--star-color),1433px 839px var(--star-color),1689px 1700px var(--star-color),1023px 1084px var(--star-color),176px 1110px var(--star-color),12px 830px var(--star-color),1880px 1619px var(--star-color),1914px 994px var(--star-color),218px 987px var(--star-color),1585px 517px var(--star-color),1837px 502px var(--star-color),1878px 1043px var(--star-color),30px 837px var(--star-color),1582px 1999px var(--star-color),1698px 940px var(--star-color),613px 266px var(--star-color),1628px 29px var(--star-color),1113px 180px var(--star-color),239px 269px var(--star-color),1903px 449px var(--star-color),1788px 1095px var(--star-color),51px 1761px var(--star-color),421px 1073px var(--star-color),353px 292px var(--star-color),1612px 749px var(--star-color),986px 601px var(--star-color),450px 343px var(--star-color),1386px 1341px var(--star-color),204px 848px var(--star-color),1527px 110px var(--star-color),379px 1993px var(--star-color),820px 1197px var(--star-color),279px 1804px var(--star-color),160px 1801px var(--star-color),1475px 1135px var(--star-color),1374px 1626px var(--star-color),873px 1542px var(--star-color),1637px 1435px var(--star-color),470px 1761px var(--star-color),628px 919px var(--star-color),628px 574px var(--star-color);
}

/* 星星层 2 - 150s 循环，0.5 透明度，随机起始点 */
.widget .shape-star .rising-stars div:nth-child(2) {
  animation-duration: 150s !important;
  animation-delay: -63s;
  box-shadow: 1046px 2770px var(--star-color),584px 202px var(--star-color),195px 1038px var(--star-color),84px 741px var(--star-color),466px 961px var(--star-color),192px 609px var(--star-color),704px 571px var(--star-color),1498px 1059px var(--star-color),21px 1214px var(--star-color),643px 408px var(--star-color),848px 514px var(--star-color),420px 1928px var(--star-color),866px 698px var(--star-color),1071px 119px var(--star-color),1284px 570px var(--star-color),907px 89px var(--star-color),1990px 137px var(--star-color),768px 1886px var(--star-color),1602px 623px var(--star-color),223px 255px var(--star-color),1224px 1955px var(--star-color),1216px 1001px var(--star-color),817px 1781px var(--star-color),1586px 684px var(--star-color),221px 71px var(--star-color),1885px 1713px var(--star-color),1441px 15px var(--star-color),1946px 1649px var(--star-color),437px 1773px var(--star-color),1831px 657px var(--star-color),1230px 220px var(--star-color),906px 1681px var(--star-color),906px 184px var(--star-color),1689px 859px var(--star-color),1655px 564px var(--star-color),1900px 1354px var(--star-color),378px 1964px var(--star-color),985px 1685px var(--star-color),1357px 999px var(--star-color),1518px 1502px var(--star-color),1068px 338px var(--star-color),920px 1753px var(--star-color),1589px 1108px var(--star-color),1212px 1920px var(--star-color),199px 596px var(--star-color),172px 67px var(--star-color),1104px 797px var(--star-color),682px 571px var(--star-color),228px 1285px var(--star-color),401px 751px var(--star-color),558px 1703px var(--star-color),1382px 736px var(--star-color),463px 1746px var(--star-color),579px 1384px var(--star-color),208px 1771px var(--star-color),290px 881px var(--star-color),408px 1189px var(--star-color),1024px 768px var(--star-color),247px 282px var(--star-color),1254px 1274px var(--star-color),592px 1785px var(--star-color),460px 914px var(--star-color),275px 429px var(--star-color),991px 93px var(--star-color),1961px 429px var(--star-color),998px 1797px var(--star-color),1363px 1258px var(--star-color),1387px 611px var(--star-color),1850px 482px var(--star-color),401px 482px var(--star-color),899px 966px var(--star-color),1424px 1844px var(--star-color),1555px 1899px var(--star-color),625px 506px var(--star-color),41px 219px var(--star-color),958px 1518px var(--star-color),1894px 717px var(--star-color),1207px 807px var(--star-color),183px 614px var(--star-color),1146px 467px var(--star-color),349px 1521px var(--star-color),587px 1330px var(--star-color),940px 1640px var(--star-color),1167px 1990px var(--star-color),1728px 1870px var(--star-color),88px 336px var(--star-color),1326px 944px var(--star-color),1103px 117px var(--star-color),1531px 1508px var(--star-color),588px 1497px var(--star-color),1193px 1036px var(--star-color),475px 345px var(--star-color),775px 731px var(--star-color),1189px 411px var(--star-color),1657px 108px var(--star-color),828px 1788px var(--star-color),622px 357px var(--star-color),1441px 1292px var(--star-color),1332px 361px var(--star-color),979px 376px var(--star-color),504px 412px var(--star-color),1470px 290px var(--star-color),1422px 1637px var(--star-color),911px 1694px var(--star-color),1304px 1729px var(--star-color),1378px 890px var(--star-color),181px 1238px var(--star-color),166px 1011px var(--star-color),570px 823px var(--star-color),1842px 771px var(--star-color),1495px 189px var(--star-color),324px 1077px var(--star-color),850px 883px var(--star-color),1718px 1273px var(--star-color),1559px 215px var(--star-color),425px 254px var(--star-color),114px 1855px var(--star-color),1425px 253px var(--star-color),1327px 477px var(--star-color),1644px 234px var(--star-color),851px 1060px var(--star-color),384px 1151px var(--star-color),78px 433px var(--star-color),269px 847px var(--star-color),11px 1426px var(--star-color),1583px 31px var(--star-color),1067px 48px var(--star-color),1532px 544px var(--star-color),1418px 923px var(--star-color),1609px 1733px var(--star-color),96px 1597px var(--star-color),1818px 421px var(--star-color),1059px 181px var(--star-color),156px 1830px var(--star-color),1565px 11px var(--star-color),989px 287px var(--star-color),827px 459px var(--star-color),1730px 1155px var(--star-color),688px 939px var(--star-color),694px 6px var(--star-color),360px 1041px var(--star-color),1230px 1560px var(--star-color),1228px 1637px var(--star-color),207px 460px var(--star-color),1869px 627px var(--star-color),69px 872px var(--star-color),438px 154px var(--star-color),217px 721px var(--star-color),141px 678px var(--star-color),606px 1622px var(--star-color),1836px 1505px var(--star-color),568px 1817px var(--star-color),1692px 901px var(--star-color),1726px 1257px var(--star-color),272px 77px var(--star-color),1327px 405px var(--star-color),833px 628px var(--star-color),974px 782px var(--star-color),828px 1085px var(--star-color),1516px 57px var(--star-color),1432px 279px var(--star-color),1308px 608px var(--star-color),419px 1365px var(--star-color),989px 1354px var(--star-color),343px 557px var(--star-color),1787px 1617px var(--star-color),609px 281px var(--star-color),397px 635px var(--star-color),330px 1483px var(--star-color),1039px 1891px var(--star-color),623px 390px var(--star-color),849px 1113px var(--star-color),774px 1584px var(--star-color),339px 1374px var(--star-color),910px 294px var(--star-color),348px 1997px var(--star-color),961px 1571px var(--star-color),108px 1103px var(--star-color),761px 1908px var(--star-color),1612px 1543px var(--star-color),1978px 1013px var(--star-color),1420px 170px var(--star-color),250px 157px var(--star-color),760px 804px var(--star-color),503px 1240px var(--star-color),913px 1425px var(--star-color),694px 541px var(--star-color),999px 1757px var(--star-color),1792px 865px var(--star-color),521px 1962px var(--star-color),892px 1943px var(--star-color),1266px 744px var(--star-color),1315px 121px var(--star-color),957px 1880px var(--star-color),1387px 334px var(--star-color),101px 132px var(--star-color),760px 1557px var(--star-color),1100px 112px var(--star-color),879px 173px var(--star-color),1712px 1707px var(--star-color),888px 28px var(--star-color),33px 1189px var(--star-color),1316px 1591px var(--star-color),254px 1751px var(--star-color),494px 1485px var(--star-color),1654px 782px var(--star-color),1983px 693px var(--star-color),754px 1919px var(--star-color),1116px 85px var(--star-color),1417px 634px var(--star-color),343px 657px var(--star-color),481px 1867px var(--star-color),805px 1831px var(--star-color),213px 1734px var(--star-color),1305px 225px var(--star-color),1158px 1852px var(--star-color),1335px 1897px var(--star-color),995px 514px var(--star-color),1297px 1704px var(--star-color),732px 25px var(--star-color),1190px 1980px var(--star-color),515px 1537px var(--star-color),1675px 639px var(--star-color),1693px 1862px var(--star-color),417px 1885px var(--star-color),1303px 1332px var(--star-color),1422px 259px var(--star-color),1176px 1403px var(--star-color),1477px 980px var(--star-color),1960px 461px var(--star-color),99px 980px var(--star-color),1139px 418px var(--star-color),1357px 487px var(--star-color),1009px 1329px var(--star-color),293px 355px var(--star-color),301px 464px var(--star-color),222px 138px var(--star-color),307px 265px var(--star-color),989px 856px var(--star-color),182px 1885px var(--star-color),1064px 1909px var(--star-color),885px 155px var(--star-color),403px 166px var(--star-color),1540px 1180px var(--star-color),310px 1519px var(--star-color),777px 496px var(--star-color),664px 1389px var(--star-color),1950px 758px var(--star-color),63px 1412px var(--star-color),1247px 1151px var(--star-color),365px 60px var(--star-color),1793px 502px var(--star-color),533px 320px var(--star-color),927px 766px var(--star-color),206px 340px var(--star-color),1261px 292px var(--star-color),1908px 1564px var(--star-color),99px 50px var(--star-color),1693px 1858px var(--star-color),641px 1034px var(--star-color),1063px 453px var(--star-color),1973px 163px var(--star-color),712px 600px var(--star-color),264px 1682px var(--star-color),1686px 289px var(--star-color),1305px 745px var(--star-color),30px 349px var(--star-color),649px 1772px var(--star-color),1032px 141px var(--star-color),204px 1345px var(--star-color),46px 289px var(--star-color),173px 466px var(--star-color),1369px 1116px var(--star-color),528px 196px var(--star-color),1355px 1117px var(--star-color),1344px 1192px var(--star-color),220px 304px var(--star-color),1816px 1984px var(--star-color),1903px 683px var(--star-color),389px 934px var(--star-color),79px 1352px var(--star-color),1317px 1295px var(--star-color),1169px 1389px var(--star-color),1061px 914px var(--star-color),1777px 1736px var(--star-color),1859px 286px var(--star-color),1479px 569px var(--star-color),930px 1613px var(--star-color),1892px 682px var(--star-color),867px 1193px var(--star-color),40px 1606px var(--star-color),624px 1860px var(--star-color),1829px 1897px var(--star-color),1891px 1944px var(--star-color),1633px 1642px var(--star-color),71px 627px var(--star-color),1334px 1548px var(--star-color),1461px 1437px var(--star-color),220px 547px var(--star-color),334px 907px var(--star-color),1512px 34px var(--star-color),789px 64px var(--star-color),190px 1169px var(--star-color),358px 22px var(--star-color),438px 115px var(--star-color),1576px 248px var(--star-color),117px 836px var(--star-color),957px 1773px var(--star-color),213px 1553px var(--star-color),1211px 1094px var(--star-color),1768px 1569px var(--star-color),541px 725px var(--star-color),1027px 1196px var(--star-color),996px 677px var(--star-color),1406px 1504px var(--star-color),707px 1457px var(--star-color),1704px 445px var(--star-color),1403px 1557px var(--star-color),1743px 223px var(--star-color),1866px 1923px var(--star-color),1137px 762px var(--star-color),1566px 1760px var(--star-color),1289px 1717px var(--star-color),1397px 634px var(--star-color),1286px 516px var(--star-color),1179px 1503px var(--star-color),1143px 1306px var(--star-color),489px 1107px var(--star-color),1663px 145px var(--star-color),1553px 1813px var(--star-color),1611px 1558px var(--star-color),969px 946px var(--star-color),243px 25px var(--star-color),518px 117px var(--star-color),1510px 12px var(--star-color),1461px 1296px var(--star-color),453px 697px var(--star-color),726px 1082px var(--star-color),1727px 410px var(--star-color),1242px 1258px var(--star-color),1847px 1331px var(--star-color),1746px 1023px var(--star-color),972px 1887px var(--star-color),704px 453px var(--star-color),424px 993px var(--star-color),1437px 797px var(--star-color),1947px 235px var(--star-color),916px 1060px var(--star-color),1034px 1354px var(--star-color),723px 1738px var(--star-color),447px 1609px var(--star-color),167px 780px var(--star-color),462px 1224px var(--star-color),704px 1676px var(--star-color),1880px 495px var(--star-color),665px 1497px var(--star-color),773px 1221px var(--star-color),471px 771px var(--star-color),549px 221px var(--star-color),846px 242px var(--star-color),638px 300px var(--star-color),75px 492px var(--star-color),856px 1803px var(--star-color),1605px 1288px var(--star-color),740px 11px var(--star-color),1009px 1229px var(--star-color),650px 1734px var(--star-color),565px 1651px var(--star-color),1314px 949px var(--star-color),852px 1135px var(--star-color),1742px 360px var(--star-color),512px 487px var(--star-color),965px 1638px var(--star-color),619px 1818px var(--star-color),982px 838px var(--star-color),36px 1269px var(--star-color),14px 542px var(--star-color),1913px 1614px var(--star-color),1231px 1455px var(--star-color),950px 1539px var(--star-color),1599px 124px var(--star-color),854px 661px var(--star-color),45px 810px var(--star-color),1098px 425px var(--star-color),1088px 579px var(--star-color),100px 673px var(--star-color),1729px 1110px var(--star-color),35px 507px var(--star-color),435px 708px var(--star-color),893px 127px var(--star-color),953px 1523px var(--star-color),1067px 1352px var(--star-color),1806px 376px var(--star-color),738px 1173px var(--star-color),676px 1910px var(--star-color),405px 805px var(--star-color),1289px 1838px var(--star-color),1794px 677px var(--star-color),1727px 1763px var(--star-color),729px 181px var(--star-color),417px 1509px var(--star-color),402px 867px var(--star-color),1047px 1577px var(--star-color),1748px 619px var(--star-color),815px 156px var(--star-color),1668px 13px var(--star-color),285px 1014px var(--star-color),499px 1355px var(--star-color),384px 819px var(--star-color),364px 1484px var(--star-color),968px 534px var(--star-color),1935px 1915px var(--star-color),662px 870px var(--star-color),1837px 1960px var(--star-color),1063px 1369px var(--star-color),388px 271px var(--star-color),1406px 1113px var(--star-color),1909px 897px var(--star-color),506px 101px var(--star-color),680px 1579px var(--star-color),1908px 1476px var(--star-color),1065px 1308px var(--star-color),892px 1806px var(--star-color),1303px 1738px var(--star-color),1112px 935px var(--star-color),1112px 354px var(--star-color),799px 1222px var(--star-color),1131px 1922px var(--star-color),341px 1281px var(--star-color),744px 298px var(--star-color),1519px 698px var(--star-color),934px 1143px var(--star-color),989px 584px var(--star-color),1250px 161px var(--star-color),49px 1336px var(--star-color),1154px 1944px var(--star-color),260px 1720px var(--star-color),243px 963px var(--star-color),1336px 834px var(--star-color),1373px 578px var(--star-color),1624px 146px var(--star-color),493px 141px var(--star-color),991px 1986px var(--star-color),715px 465px var(--star-color),1380px 373px var(--star-color),1134px 284px var(--star-color),1469px 1534px var(--star-color),1074px 1672px var(--star-color),836px 1225px var(--star-color),1115px 1213px var(--star-color),500px 509px var(--star-color),350px 817px var(--star-color),1352px 1204px var(--star-color),530px 786px var(--star-color),53px 906px var(--star-color),414px 601px var(--star-color),977px 552px var(--star-color),447px 196px var(--star-color),67px 548px var(--star-color),837px 399px var(--star-color),1786px 792px var(--star-color),1681px 1843px var(--star-color),1695px 847px var(--star-color),726px 768px var(--star-color),667px 1145px var(--star-color),382px 395px var(--star-color),502px 1182px var(--star-color),1930px 100px var(--star-color),492px 1356px var(--star-color),221px 977px var(--star-color),998px 848px var(--star-color),482px 531px var(--star-color),497px 239px var(--star-color),1795px 681px var(--star-color),1721px 1218px var(--star-color),521px 349px var(--star-color),1573px 1747px var(--star-color),294px 1103px var(--star-color),39px 235px var(--star-color),1502px 1754px var(--star-color),1918px 1587px var(--star-color),1448px 604px var(--star-color),583px 62px var(--star-color),790px 1923px var(--star-color),510px 344px var(--star-color),165px 1091px var(--star-color),1474px 1639px var(--star-color),1577px 1452px var(--star-color),1017px 99px var(--star-color),1547px 679px var(--star-color),852px 1216px var(--star-color),83px 1818px var(--star-color),1240px 1423px var(--star-color),1122px 1475px var(--star-color),418px 230px var(--star-color),1989px 1326px var(--star-color),1828px 1633px var(--star-color),1412px 373px var(--star-color),685px 1113px var(--star-color),1909px 1468px var(--star-color);
  opacity: .5;
}

/* 星星层 3 - 200s 循环，0.3 透明度，随机起始点 */
.widget .shape-star .rising-stars div:nth-child(3) {
  animation-duration: 200s !important;
  animation-delay: -91s;
  box-shadow: 1858px 10327px var(--star-color),1161px 1700px var(--star-color),271px 1050px var(--star-color),1378px 1738px var(--star-color),1479px 1467px var(--star-color),1866px 1558px var(--star-color),802px 12px var(--star-color),1322px 341px var(--star-color),1593px 1458px var(--star-color),1500px 710px var(--star-color),1933px 1717px var(--star-color),487px 1255px var(--star-color),1547px 240px var(--star-color),1460px 931px var(--star-color),1725px 1308px var(--star-color),69px 335px var(--star-color),802px 1969px var(--star-color),1621px 1871px var(--star-color),1553px 113px var(--star-color),1166px 124px var(--star-color),1987px 79px var(--star-color),180px 1271px var(--star-color),466px 765px var(--star-color),129px 1528px var(--star-color),73px 117px var(--star-color),1836px 1944px var(--star-color),335px 125px var(--star-color),145px 364px var(--star-color),1864px 1974px var(--star-color),525px 559px var(--star-color),865px 876px var(--star-color),1097px 828px var(--star-color),1544px 1001px var(--star-color),1362px 411px var(--star-color),1218px 312px var(--star-color),185px 1270px var(--star-color),1273px 493px var(--star-color),1241px 1593px var(--star-color),1410px 1164px var(--star-color),398px 1009px var(--star-color),1700px 570px var(--star-color),1985px 937px var(--star-color),706px 958px var(--star-color),651px 1650px var(--star-color),765px 1675px var(--star-color),1557px 316px var(--star-color),779px 1365px var(--star-color),1150px 581px var(--star-color),251px 1600px var(--star-color),1244px 906px var(--star-color),912px 1051px var(--star-color),733px 1393px var(--star-color),1081px 847px var(--star-color),592px 420px var(--star-color),1820px 736px var(--star-color),912px 807px var(--star-color),1925px 711px var(--star-color),1862px 1277px var(--star-color),985px 1024px var(--star-color),162px 1318px var(--star-color),1714px 559px var(--star-color),1588px 1205px var(--star-color),763px 955px var(--star-color),1760px 1228px var(--star-color),756px 1980px var(--star-color),1119px 382px var(--star-color),1887px 1961px var(--star-color),1869px 798px var(--star-color),1105px 800px var(--star-color),1110px 1166px var(--star-color),1669px 1354px var(--star-color),1014px 128px var(--star-color),290px 692px var(--star-color),1666px 102px var(--star-color),249px 559px var(--star-color),1874px 1811px var(--star-color),1998px 1676px var(--star-color),1728px 1882px var(--star-color),1730px 736px var(--star-color),890px 426px var(--star-color),1388px 1047px var(--star-color),701px 374px var(--star-color),1542px 1736px var(--star-color),781px 163px var(--star-color),791px 809px var(--star-color),1649px 438px var(--star-color),1094px 1475px var(--star-color),241px 382px var(--star-color),1632px 1472px var(--star-color),62px 1676px var(--star-color),1154px 909px var(--star-color),501px 1121px var(--star-color),886px 526px var(--star-color),1587px 1752px var(--star-color),1247px 131px var(--star-color),1800px 242px var(--star-color),590px 1059px var(--star-color),837px 1819px var(--star-color),281px 1355px var(--star-color),161px 1898px var(--star-color),1465px 371px var(--star-color),1578px 823px var(--star-color),877px 1360px var(--star-color),276px 1713px var(--star-color),296px 522px var(--star-color),804px 173px var(--star-color),1793px 617px var(--star-color),1622px 1824px var(--star-color),237px 1068px var(--star-color),1933px 545px var(--star-color),1543px 1870px var(--star-color),884px 578px var(--star-color),125px 250px var(--star-color),986px 882px var(--star-color),1400px 1211px var(--star-color),570px 1508px var(--star-color),1449px 115px var(--star-color),726px 914px var(--star-color),1499px 1532px var(--star-color),1308px 968px var(--star-color),1876px 630px var(--star-color),843px 606px var(--star-color),144px 1085px var(--star-color),878px 1315px var(--star-color),1779px 1571px var(--star-color),1145px 1510px var(--star-color),1368px 1857px var(--star-color),852px 627px var(--star-color),1680px 641px var(--star-color),1652px 1798px var(--star-color),1303px 1056px var(--star-color),1391px 45px var(--star-color),365px 972px var(--star-color),1031px 1860px var(--star-color),1806px 1213px var(--star-color),1249px 233px var(--star-color),1126px 1513px var(--star-color),1921px 1055px var(--star-color),1490px 1176px var(--star-color),641px 1781px var(--star-color),1640px 854px var(--star-color),542px 1083px var(--star-color),106px 679px var(--star-color),1423px 857px var(--star-color),1254px 781px var(--star-color),1775px 950px var(--star-color),681px 239px var(--star-color),756px 478px var(--star-color),1199px 973px var(--star-color),346px 1704px var(--star-color),421px 911px var(--star-color),339px 1168px var(--star-color),586px 1762px var(--star-color),801px 274px var(--star-color),1901px 1693px var(--star-color),914px 1706px var(--star-color),976px 1023px var(--star-color),787px 802px var(--star-color),1057px 1614px var(--star-color),438px 173px var(--star-color),56px 1526px var(--star-color),258px 1960px var(--star-color),1756px 4px var(--star-color),434px 1702px var(--star-color),1590px 1362px var(--star-color),607px 1053px var(--star-color),1510px 1225px var(--star-color),683px 262px var(--star-color),184px 1205px var(--star-color),1579px 891px var(--star-color),131px 1755px var(--star-color),1929px 761px var(--star-color),1867px 1152px var(--star-color),1875px 280px var(--star-color),271px 1683px var(--star-color),671px 1224px var(--star-color),1836px 1011px var(--star-color),1323px 1211px var(--star-color),1149px 1503px var(--star-color),57px 1496px var(--star-color),149px 647px var(--star-color),1927px 142px var(--star-color),381px 1755px var(--star-color),265px 1660px var(--star-color),322px 1161px var(--star-color),946px 304px var(--star-color),1616px 1035px var(--star-color),1283px 1371px var(--star-color),1232px 1532px var(--star-color),1869px 387px var(--star-color),1101px 1882px var(--star-color),1428px 1762px var(--star-color),1666px 620px var(--star-color),444px 739px var(--star-color),1525px 1091px var(--star-color),1372px 1186px var(--star-color),1733px 898px var(--star-color),1076px 72px var(--star-color),538px 1382px var(--star-color),424px 1995px var(--star-color),571px 526px var(--star-color),412px 521px var(--star-color),1372px 564px var(--star-color),1358px 1203px var(--star-color),1427px 689px var(--star-color),1599px 1873px var(--star-color),589px 384px var(--star-color),855px 739px var(--star-color),1431px 1233px var(--star-color),983px 1877px var(--star-color),1174px 1911px var(--star-color),1194px 337px var(--star-color),206px 865px var(--star-color),621px 423px var(--star-color),934px 1528px var(--star-color),853px 1336px var(--star-color),722px 1341px var(--star-color),1806px 1361px var(--star-color),1077px 281px var(--star-color),1298px 79px var(--star-color),258px 389px var(--star-color),666px 560px var(--star-color),1898px 1083px var(--star-color),869px 1141px var(--star-color),345px 1500px var(--star-color),1025px 1327px var(--star-color),1953px 302px var(--star-color),1709px 773px var(--star-color),1565px 467px var(--star-color),1937px 55px var(--star-color),435px 510px var(--star-color),833px 271px var(--star-color),711px 1105px var(--star-color),121px 1869px var(--star-color),1934px 948px var(--star-color),175px 387px var(--star-color),899px 1971px var(--star-color),1784px 1443px var(--star-color),1080px 1296px var(--star-color),1733px 1938px var(--star-color),677px 949px var(--star-color),998px 1514px var(--star-color),455px 1734px var(--star-color),318px 574px var(--star-color),140px 84px var(--star-color),1555px 1854px var(--star-color),1244px 471px var(--star-color),874px 1216px var(--star-color),1590px 358px var(--star-color),1251px 1027px var(--star-color),855px 1210px var(--star-color),540px 1026px var(--star-color),1035px 1680px var(--star-color),814px 1264px var(--star-color),1852px 974px var(--star-color),757px 1443px var(--star-color),836px 22px var(--star-color),1477px 1364px var(--star-color),92px 1002px var(--star-color),114px 1147px var(--star-color),748px 1621px var(--star-color),1293px 1083px var(--star-color),1222px 40px var(--star-color),1870px 210px var(--star-color),943px 1762px var(--star-color),340px 785px var(--star-color),916px 1916px var(--star-color),1993px 1791px var(--star-color),1811px 556px var(--star-color),1839px 1073px var(--star-color),1193px 331px var(--star-color),613px 35px var(--star-color),1858px 1384px var(--star-color),1730px 1678px var(--star-color),1379px 787px var(--star-color),1312px 73px var(--star-color),231px 1475px var(--star-color),903px 939px var(--star-color),1037px 801px var(--star-color),853px 631px var(--star-color),1256px 861px var(--star-color),1329px 685px var(--star-color),1078px 115px var(--star-color),229px 876px var(--star-color),667px 1493px var(--star-color),418px 674px var(--star-color),558px 1881px var(--star-color),1745px 633px var(--star-color),1677px 676px var(--star-color),1407px 616px var(--star-color),1874px 67px var(--star-color),276px 1509px var(--star-color),1757px 543px var(--star-color),280px 249px var(--star-color),1738px 609px var(--star-color),1908px 23px var(--star-color),1677px 580px var(--star-color),32px 1763px var(--star-color),32px 447px var(--star-color),1702px 1504px var(--star-color),1190px 1477px var(--star-color),215px 82px var(--star-color),327px 407px var(--star-color),1559px 1114px var(--star-color),933px 668px var(--star-color),451px 621px var(--star-color),1929px 846px var(--star-color),32px 774px var(--star-color),1956px 1642px var(--star-color),1475px 1964px var(--star-color),676px 1033px var(--star-color),1810px 1514px var(--star-color),1518px 1712px var(--star-color),1436px 1851px var(--star-color),523px 1439px var(--star-color),374px 1219px var(--star-color),609px 1850px var(--star-color),1515px 1935px var(--star-color),54px 775px var(--star-color),1775px 1760px var(--star-color),638px 1563px var(--star-color),319px 560px var(--star-color),1624px 180px var(--star-color),156px 879px var(--star-color),997px 296px var(--star-color),1015px 1008px var(--star-color),1003px 1273px var(--star-color),1916px 585px var(--star-color),729px 692px var(--star-color),576px 742px var(--star-color),346px 1712px var(--star-color),1632px 1017px var(--star-color),1820px 1786px var(--star-color),529px 1067px var(--star-color),1641px 1899px var(--star-color),1034px 1776px var(--star-color),936px 1016px var(--star-color),1372px 1163px var(--star-color),1877px 117px var(--star-color),1400px 1800px var(--star-color),855px 1426px var(--star-color),1333px 1970px var(--star-color),686px 628px var(--star-color),1594px 1839px var(--star-color),1025px 475px var(--star-color),103px 738px var(--star-color),1984px 632px var(--star-color),1471px 1777px var(--star-color),761px 1601px var(--star-color),1892px 277px var(--star-color),1134px 1234px var(--star-color),1811px 198px var(--star-color),87px 704px var(--star-color),1651px 1976px var(--star-color),52px 1767px var(--star-color),704px 1337px var(--star-color),802px 191px var(--star-color),1558px 1521px var(--star-color),561px 1204px var(--star-color),693px 921px var(--star-color),97px 1563px var(--star-color),855px 1409px var(--star-color),458px 250px var(--star-color),144px 1721px var(--star-color),1783px 863px var(--star-color),1595px 691px var(--star-color),345px 308px var(--star-color),1528px 1854px var(--star-color),989px 130px var(--star-color),1325px 1593px var(--star-color),206px 749px var(--star-color),836px 1724px var(--star-color),1278px 208px var(--star-color),232px 829px var(--star-color),199px 638px var(--star-color),1519px 215px var(--star-color),14px 69px var(--star-color),1677px 1092px var(--star-color),1894px 579px var(--star-color),958px 408px var(--star-color),105px 377px var(--star-color),896px 1369px var(--star-color),1793px 864px var(--star-color),279px 987px var(--star-color),1431px 636px var(--star-color),1255px 1430px var(--star-color),1169px 79px var(--star-color),920px 227px var(--star-color),1211px 721px var(--star-color),535px 552px var(--star-color),51px 332px var(--star-color),933px 146px var(--star-color),377px 1335px var(--star-color),249px 63px var(--star-color),1535px 535px var(--star-color),457px 616px var(--star-color),1722px 813px var(--star-color),998px 1478px var(--star-color),308px 1395px var(--star-color),1860px 1153px var(--star-color),146px 1334px var(--star-color),1200px 1599px var(--star-color),1758px 861px var(--star-color),1676px 1494px var(--star-color),344px 1423px var(--star-color),1281px 1775px var(--star-color),1617px 942px var(--star-color),190px 660px var(--star-color),1783px 399px var(--star-color),1364px 1781px var(--star-color),1439px 1725px var(--star-color),146px 1650px var(--star-color),1209px 656px var(--star-color),1181px 938px var(--star-color),1710px 72px var(--star-color),1176px 757px var(--star-color),219px 1728px var(--star-color),1271px 353px var(--star-color),471px 665px var(--star-color),1212px 1531px var(--star-color),1805px 1687px var(--star-color),1225px 1591px var(--star-color),107px 532px var(--star-color),7px 1980px var(--star-color),1366px 89px var(--star-color),1276px 574px var(--star-color),1200px 1144px var(--star-color),1886px 924px var(--star-color),665px 1543px var(--star-color),1418px 55px var(--star-color),1755px 1828px var(--star-color),1626px 48px var(--star-color),697px 1868px var(--star-color),901px 1643px var(--star-color),21px 1696px var(--star-color),932px 1471px var(--star-color),1468px 1972px var(--star-color),1682px 1786px var(--star-color),323px 332px var(--star-color),1798px 1661px var(--star-color),827px 1124px var(--star-color),1790px 1828px var(--star-color),1117px 219px var(--star-color),364px 1082px var(--star-color),808px 1877px var(--star-color),1542px 1281px var(--star-color),1929px 704px var(--star-color),1867px 1408px var(--star-color),1850px 1264px var(--star-color),299px 199px var(--star-color),413px 1414px var(--star-color),117px 1574px var(--star-color),1361px 61px var(--star-color),746px 1194px var(--star-color),1719px 1803px var(--star-color),374px 155px var(--star-color),140px 570px var(--star-color),1797px 850px var(--star-color),1540px 509px var(--star-color),1278px 603px var(--star-color),1520px 1385px var(--star-color),805px 207px var(--star-color),1977px 1386px var(--star-color),1452px 1361px var(--star-color),937px 38px var(--star-color),1294px 1911px var(--star-color),1898px 1002px var(--star-color),657px 972px var(--star-color),1050px 641px var(--star-color),1072px 255px var(--star-color),438px 638px var(--star-color),261px 1056px var(--star-color),620px 1078px var(--star-color),558px 1957px var(--star-color),1767px 1500px var(--star-color),182px 565px var(--star-color),565px 48px var(--star-color),227px 504px var(--star-color),1483px 371px var(--star-color),693px 236px var(--star-color),766px 317px var(--star-color),1305px 669px var(--star-color),885px 537px var(--star-color),1935px 44px var(--star-color),1391px 1152px var(--star-color),220px 1369px var(--star-color),654px 1800px var(--star-color),1974px 264px var(--star-color),1930px 959px var(--star-color),1197px 1905px var(--star-color),543px 1035px var(--star-color),156px 1975px var(--star-color),1828px 1156px var(--star-color),319px 242px var(--star-color),1657px 83px var(--star-color),682px 879px var(--star-color),1293px 1716px var(--star-color),1561px 739px var(--star-color),1365px 927px var(--star-color),1753px 812px var(--star-color);
  opacity: .3;
}

/* 可见星星开启动画 */
.widget .shape-star .rising-stars-visible div {
  animation: risingStarsAnination linear infinite;
}

/* 地球（底部大圆） */
.widget .shape-earth {
  position: absolute;
  z-index: -1;
  bottom: -1840px;
  left: 50%;
  transform: translateX(-50%);
  width: 1920px;
  height: 1920px;
  border-radius: 9999px;
  background: var(--shape-earth-bg);
  filter: blur(2px);
}

/* ========================================
   7. 主内容区布局
   ======================================== */

/* 主容器 */
.index {
  display: flex;
  justify-content: center;
  align-items: center;
  --mw: 968px;
  flex-direction: column;
  justify-content: flex-start;
  padding: 140px 40px 60px 40px;
  min-height: calc(100vh - 100px);
}

/* 横向展开区域（title / selected projects 等） */
.index .main {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: var(--mw);
}

/* ========================================
   8. 问候语区域
   ======================================== */

.index .hello {
  display: flex;
  justify-content: center;
  align-items: center;
  --mw: 968px;
  height: 400px;
  width: 100%;
  max-width: var(--mw);
  flex-direction: column;
}

.index .hello .title {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 8px;
}

/* 标题文字淡入淡出动画 */
.index .hello .title-hi,
.index .hello .title-name {
  transition: opacity 0.3s ease;
}

.index .hello .title.fade-out .title-hi,
.index .hello .title.fade-out .title-name {
  opacity: 0;
}

.index .hello .title.fade-in .title-hi,
.index .hello .title.fade-in .title-name {
  opacity: 1;
}

.index .hello .title * {
  font-size: 32px;
  font-weight: 700;
}

/* "Hi, I'm" 文字渐变（白→半透白） */
.index .hello .title .title-hi {
  font-size: 32px;
  font-weight: 700;
  background: linear-gradient(180deg, var(--title-gradient-from) 0%, var(--title-gradient-to) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* "Ntars" 名字渐变 */
.index .hello .title .title-name {
  --bg: linear-gradient(90deg, var(--name-gradient-from) 0%, var(--name-gradient-to) 100%);
  position: relative;
  background: var(--bg);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  cursor: pointer;
}

/* 名字悬停下划线 */
.index .hello .title .title-name:hover::after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  width: 100%;
  height: 1px;
  background: var(--bg);
}

/* 打字效果行 */
.index .hello .hello-desc {
  height: 28px;
  color: var(--text-secondary);
  font-size: 16px;
  line-height: 28px;
  font-weight: 300;
  letter-spacing: 1px;
  margin: 24px 0 0 0;
}

/* 背景点阵装饰 */
.index .hello::after {
  content: '';
  position: absolute;
  width: 512px;
  height: 512px;
  background-image: radial-gradient(circle at center, var(--dot-color) 1.5px, transparent 1.5px);
  background-size: 16px 16px;
  mask-image: radial-gradient(at center, #fff, transparent 72%);
  -webkit-mask-image: radial-gradient(at center, #fff, transparent 72%);
  opacity: 0.8;
  z-index: -1;
}

/* ========================================
   9. 内容分割线
   ======================================== */

.index .content-divider {
  display: flex;
  justify-content: center;
  align-items: center;
  --mw: 968px;
  width: 100%;
  max-width: var(--mw);
  height: 2px;
  background-image: radial-gradient(circle at center, var(--divider-color) 1px, transparent 1px);
  background-size: 8px 2px;
  background-repeat: repeat;
  mask-image: radial-gradient(at center, #fff, transparent 90%);
  -webkit-mask-image: radial-gradient(at center, #fff, transparent 90%);
  margin-bottom: 12px;
}

/* ========================================
   10. 快速链接 / Selected Projects 区域
   ======================================== */

.index .quickly-link {
  display: flex;
  justify-content: center;
  align-items: center;
  --mw: 968px;
  flex-direction: column;
  padding-top: 24px;
  width: 100%;
  max-width: var(--mw);
}

.index .quickly-link .main {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: var(--mw);
}

/* 标题与卡片之间的间距 */
.index .quickly-link .projects-spacer {
  height: 16px;
  width: 100%;
}

/* "Selected Projects" 标题 */
.index .quickly-link .title-hi {
  font-size: 32px;
  font-weight: 700;
  background: linear-gradient(180deg, var(--title-gradient-from) 0%, var(--title-gradient-to) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ========================================
   11. 项目卡片列表
   ======================================== */

.index .quickly-link .link-card {
  display: flex;
  justify-content: center;
  align-items: center;
  --mw: 968px;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  max-width: var(--mw);
}

/* 卡片网格布局 */
.index .quickly-link .link-card .link-card-list {
  width: 100%;
  max-width: var(--mw);
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  grid-gap: 16px;
}

/* 单张卡片样式 */
.index .quickly-link .link-card .link-card-list .link-card-item {
  background-color: var(--card-bg);
  box-shadow: var(--card-shadow);
  --circle-size: 400px;
}

/* 卡片内过渡动画 */
.index .quickly-link .link-card .link-card-list .link-card-item * {
  transition: opacity .4s;
}

/* 卡片链接 */
.index .quickly-link .link-card .link-card-list .link-card-item a {
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: 16px;
  gap: 12px;
}

/* 卡片悬停效果 */
.index .quickly-link .link-card .link-card-list .link-card-item a:hover {
  color: var(--accent-color);
  transition: all .15s ease-in;
}

.index .quickly-link .link-card .link-card-list .link-card-item a:hover .info,
.index .quickly-link .link-card .link-card-list .link-card-item a:hover .icon-arrow,
.index .quickly-link .link-card .link-card-list .link-card-item a:hover img {
  opacity: 1;
}

/* 卡片内图标 */
.index .quickly-link .link-card .link-card-list .link-card-item img {
  width: 40px;
  opacity: .6;
}

/* 卡片信息区 */
.index .quickly-link .link-card .link-card-list .link-card-item .info {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  opacity: .8;
}

/* 卡片标题 */
.index .quickly-link .link-card .link-card-list .link-card-item .info .info-title {
  width: 100%;
  font-size: 14px;
  font-weight: 500;
  line-height: 24px;
  background: linear-gradient(180deg, var(--title-gradient-from) 0%, var(--title-gradient-to) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* 卡片描述 */
.index .quickly-link .link-card .link-card-list .link-card-item .info .info-desc {
  width: 100%;
  font-size: 12px;
  font-weight: 400;
  line-height: 20px;
  color: var(--text-secondary);
}

/* 卡片箭头图标（悬停显示） */
.index .quickly-link .link-card .link-card-list .link-card-item .icon-arrow {
  width: 14px;
  height: 14px;
  opacity: 0;
  color: var(--text-secondary);
}

/* ========================================
   12. PWA 独立窗口适配
   ======================================== */

/* iOS Web App 状态栏适配 */
@supports (-webkit-touch-callout: none) {
  body {
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
    min-height: -webkit-fill-available;
  }
}

/* PWA standalone 模式样式调整 */
@media all and (display-mode: standalone) {
  body {
    /* 独立窗口中无浏览器 UI，全屏体验 */
    padding-top: env(safe-area-inset-top, 20px);
    padding-bottom: env(safe-area-inset-bottom, 16px);
  }
}
