
.highlight table td { padding: 5px; }

.highlight table pre { margin: 0; }

.highlight .cm { color: #999988; font-style: italic; }

.highlight .cp { color: #999999; font-weight: bold; }

.highlight .c1 { color: #999988; font-style: italic; }

.highlight .cs { color: #999999; font-weight: bold; font-style: italic; }

.highlight .c, .highlight .cd { color: #999988; font-style: italic; }

.highlight .err { color: #a61717; background-color: #e3d2d2; }

.highlight .gd { color: #000000; background-color: #ffdddd; }

.highlight .ge { color: #000000; font-style: italic; }

.highlight .gr { color: #aa0000; }

.highlight .gh { color: #999999; }

.highlight .gi { color: #000000; background-color: #ddffdd; }

.highlight .go { color: #888888; }

.highlight .gp { color: #555555; }

.highlight .gs { font-weight: bold; }

.highlight .gu { color: #aaaaaa; }

.highlight .gt { color: #aa0000; }

.highlight .kc { color: #000000; font-weight: bold; }

.highlight .kd { color: #000000; font-weight: bold; }

.highlight .kn { color: #000000; font-weight: bold; }

.highlight .kp { color: #000000; font-weight: bold; }

.highlight .kr { color: #000000; font-weight: bold; }

.highlight .kt { color: #445588; font-weight: bold; }

.highlight .k, .highlight .kv { color: #000000; font-weight: bold; }

.highlight .mf { color: #009999; }

.highlight .mh { color: #009999; }

.highlight .il { color: #009999; }

.highlight .mi { color: #009999; }

.highlight .mo { color: #009999; }

.highlight .m, .highlight .mb, .highlight .mx { color: #009999; }

.highlight .sb { color: #d14; }

.highlight .sc { color: #d14; }

.highlight .sd { color: #d14; }

.highlight .s2 { color: #d14; }

.highlight .se { color: #d14; }

.highlight .sh { color: #d14; }

.highlight .si { color: #d14; }

.highlight .sx { color: #d14; }

.highlight .sr { color: #009926; }

.highlight .s1 { color: #d14; }

.highlight .ss { color: #990073; }

.highlight .s { color: #d14; }

.highlight .na { color: #008080; }

.highlight .bp { color: #999999; }

.highlight .nb { color: #0086B3; }

.highlight .nc { color: #445588; font-weight: bold; }

.highlight .no { color: #008080; }

.highlight .nd { color: #3c5d5d; font-weight: bold; }

.highlight .ni { color: #800080; }

.highlight .ne { color: #990000; font-weight: bold; }

.highlight .nf { color: #990000; font-weight: bold; }

.highlight .nl { color: #990000; font-weight: bold; }

.highlight .nn { color: #555555; }

.highlight .nt { color: #000080; }

.highlight .vc { color: #008080; }

.highlight .vg { color: #008080; }

.highlight .vi { color: #008080; }

.highlight .nv { color: #008080; }

.highlight .ow { color: #000000; font-weight: bold; }

.highlight .o { color: #000000; font-weight: bold; }

.highlight .w { color: #bbbbbb; }

.highlight { background-color: #f8f8f8; }

* { box-sizing: border-box; }

body { padding: 0; margin: 0; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; color: #606c71; }

a { color: #1e6bb8; text-decoration: none; }
a:hover { text-decoration: underline; }

.btn { display: inline-block; margin-bottom: 1rem; color: rgba(255, 255, 255, 0.7); background-color: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.2); border-style: solid; border-width: 1px; border-radius: 0.3rem; transition: color 0.2s, background-color 0.2s, border-color 0.2s; }
.btn:hover { color: rgba(255, 255, 255, 0.8); text-decoration: none; background-color: rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.3); }
.btn + .btn { margin-left: 1rem; }
@media screen and (min-width: 64em) { .btn { padding: 0.75rem 1rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .btn { padding: 0.6rem 0.9rem; font-size: 0.9rem; } }
@media screen and (max-width: 42em) { .btn { display: block; width: 100%; padding: 0.75rem; font-size: 0.9rem; }
  .btn + .btn { margin-top: 1rem; margin-left: 0; } }

.blog-thumbnail {
  background-color: #ffffff;
  border: 1px solid #e1e1e1; /* Subtle border color */
  padding: 20px;
  border-radius: 5px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Subtle shadow for depth */
  transition: transform 0.2s ease; /* Smooth hover effect */
  margin: 20px;
  text-decoration: none; /* 移除链接的下划线 */
  display: block; /* 使得背景色变化仅限于链接区域 */
}

.blog-thumbnail:hover {
  transform: translateY(-5px); /* Slight lift on hover */
  background-color: #e0e0e0; 
  text-decoration: none; /* 确保悬停时也没有下划线 */
}

.blog-thumbnail h2 {
  text-align: center;
  font-size: 24px;
  margin-bottom: 10px;
}

.blog-thumbnail p {
  text-align: center;
  font-size: 16px;
  color: #666;
  line-height: 1.6;
  margin-bottom: 15px;
}

.blog-thumbnail .blog-date {
  text-align: right;
  font-size: 0.9em;
  color: #888;  
}


.page-header { color: #fff; text-align: center; background-color: #159957; background-image: linear-gradient(120deg, #155799, #159957); }
@media screen and (min-width: 64em) { .page-header { padding: 5rem 6rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .page-header { padding: 3rem 4rem; } }
@media screen and (max-width: 42em) { .page-header { padding: 2rem 1rem; } }

.page-header-inner { color: #fff; text-align: center; background-color: #000000; background-image: linear-gradient(120deg, #002444, #000000); }
@media screen and (min-width: 64em) { .page-header-inner { padding: 5rem 6rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .page-header-inner { padding: 3rem 4rem; } }
@media screen and (max-width: 42em) { .page-header-inner { padding: 2rem 1rem; } }

.page-header-real { color: #fff; text-align: center; background-color: #155799; background-image: linear-gradient(120deg, #152444, #155799); }
@media screen and (min-width: 64em) { .page-header-real { padding: 5rem 6rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .page-header-real { padding: 3rem 4rem; } }
@media screen and (max-width: 42em) { .page-header-real { padding: 2rem 1rem; } }

.page-header-stardew { color: #fff; text-align: center; background-image: url(../inner/tower/stardew/stardew.jpg); background-size: cover; background-repeat: no-repeat;}
@media screen and (min-width: 64em) { .page-header-stardew { padding: 5rem 6rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .page-header-stardew { padding: 3rem 4rem; } }
@media screen and (max-width: 42em) { .page-header-stardew { padding: 2rem 1rem; } }

.project-name { margin-top: 0; margin-bottom: 0.1rem; }
@media screen and (min-width: 64em) { .project-name { font-size: 3.25rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .project-name { font-size: 2.25rem; } }
@media screen and (max-width: 42em) { .project-name { font-size: 1.75rem; } }

.project-tagline { margin-bottom: 2rem; font-weight: normal; opacity: 0.7; }
@media screen and (min-width: 64em) { .project-tagline { font-size: 1.25rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .project-tagline { font-size: 1.15rem; } }
@media screen and (max-width: 42em) { .project-tagline { font-size: 1rem; } }

.main-content { word-wrap: break-word; }
.main-content :first-child { margin-top: 0; }
@media screen and (min-width: 64em) { .main-content { max-width: 64rem; padding: 2rem 6rem; margin: 0 auto; font-size: 1.1rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .main-content { padding: 2rem 4rem; font-size: 1.1rem; } }
@media screen and (max-width: 42em) { .main-content { padding: 2rem 1rem; font-size: 1rem; } }
.main-content img { max-width: 100%; }
.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { margin-top: 2rem; margin-bottom: 1rem; font-weight: normal; color: #159957; }
.main-content p { margin-bottom: 1em; }
.main-content code { padding: 2px 4px; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.9rem; color: #567482; background-color: #f3f6fa; border-radius: 0.3rem; }
.main-content pre { padding: 0.8rem; margin-top: 0; margin-bottom: 1rem; font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace; color: #567482; word-wrap: normal; background-color: #f3f6fa; border: solid 1px #dce6f0; border-radius: 0.3rem; }
.main-content pre > code { padding: 0; margin: 0; font-size: 0.9rem; color: #567482; word-break: normal; white-space: pre; background: transparent; border: 0; }
.main-content .highlight { margin-bottom: 1rem; }
.main-content .highlight pre { margin-bottom: 0; word-break: normal; }
.main-content .highlight pre, .main-content pre { padding: 0.8rem; overflow: auto; font-size: 0.9rem; line-height: 1.45; border-radius: 0.3rem; -webkit-overflow-scrolling: touch; }
.main-content pre code, .main-content pre tt { display: inline; max-width: initial; padding: 0; margin: 0; overflow: initial; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; }
.main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after { content: normal; }
.main-content ul, .main-content ol { margin-top: 0; }
.main-content blockquote { padding: 0 1rem; margin-left: 0; color: #819198; border-left: 0.3rem solid #dce6f0; }
.main-content blockquote > :first-child { margin-top: 0; }
.main-content blockquote > :last-child { margin-bottom: 0; }
.main-content table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; -webkit-overflow-scrolling: touch; }
.main-content table th { font-weight: bold; }
.main-content table th, .main-content table td { padding: 0.5rem 1rem; border: 1px solid #e9ebec; }
.main-content dl { padding: 0; }
.main-content dl dt { padding: 0; margin-top: 1rem; font-size: 1rem; font-weight: bold; }
.main-content dl dd { padding: 0; margin-bottom: 1rem; }
.main-content hr { height: 2px; padding: 0; margin: 1rem 0; background-color: #eff0f1; border: 0; }

.site-footer { padding-top: 2rem; margin-top: 2rem; border-top: solid 1px #eff0f1; }
@media screen and (min-width: 64em) { .site-footer { font-size: 1rem; } }
@media screen and (min-width: 42em) and (max-width: 64em) { .site-footer { font-size: 1rem; } }
@media screen and (max-width: 42em) { .site-footer { font-size: 0.9rem; } }

.site-footer-owner { display: block; font-weight: bold; }

.site-footer-credits { color: #819198; }


.cd-container {
width: 90%;
max-width: 1080px;
margin: 0 auto;
background: #2B343A;
padding: 0 10%;
border-radius: 2px;
}
.cd-container::after {
content: '';
display: table;
clear: both;
}

/* -------------------------------- 

Main components 

-------------------------------- */


#cd-timeline {
position: relative;
padding: 2em 0;
margin-top: 2em;
margin-bottom: 2em;
}
#cd-timeline::before {
content: '';
position: absolute;
top: 0;
left: 25px;
height: 100%;
width: 4px;
background: #7E57C2;
}
@media only screen and (min-width: 1170px) {
#cd-timeline {
  margin-top: 3em;
  margin-bottom: 3em;
}
#cd-timeline::before {
  left: 50%;
  margin-left: -2px;
}
}

.cd-timeline-block {
position: relative;
margin: 2em 0;
}
.cd-timeline-block:after {
content: "";
display: table;
clear: both;
}
.cd-timeline-block:first-child {
margin-top: 0;
}
.cd-timeline-block:last-child {
margin-bottom: 0;
}
@media only screen and (min-width: 1170px) {
.cd-timeline-block {
  margin: 4em 0;
}
.cd-timeline-block:first-child {
  margin-top: 0;
}
.cd-timeline-block:last-child {
  margin-bottom: 0;
}
}

.cd-timeline-box {
position: absolute;
top: 8px;
left: 12px;
width: 30px;
height: 30px;
border-radius: 10px;
box-shadow: 0 0 0 4px #7E57C2, inset 0 2px 0 rgba(0, 0, 0, 0.08), 0 3px 0 4px rgba(0, 0, 0, 0.05);
background: #673AB7;
padding: 2px 10px;
}
@media only screen and (min-width: 1170px) {
.cd-timeline-box {
  width: 200px;
  height: 30px;
  left: 50%;
  margin-left: -100px;
  margin-top: 100px;
  /* Force Hardware Acceleration in WebKit */
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
}
}

.cd-timeline-img {
position: absolute;
top: 8px;
left: 12px;
width: 30px;
height: 30px;
border-radius: 50%;
box-shadow: 0 0 0 4px #7E57C2, inset 0 2px 0 rgba(0, 0, 0, 0.08), 0 3px 0 4px rgba(0, 0, 0, 0.05);
}
.cd-timeline-img {
background: #673AB7;
}
@media only screen and (min-width: 1170px) {
.cd-timeline-img {
  width: 30px;
  height: 30px;
  left: 50%;
  margin-left: -15px;
  margin-top: 15px;
  /* Force Hardware Acceleration in WebKit */
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
}
}

.cd-timeline-content {
position: relative;
margin-left: 60px;
margin-right: 30px;
background: #333C42;
border-radius: 2px;
padding: 1em;
.timeline-content-info {
  background: #2B343A;
  padding: 5px 10px;
  color: rgba(255,255,255,0.7);
  font-size: 12px;
  box-shadow:  inset 0 2px 0 rgba(0, 0, 0, 0.08);
  border-radius: 2px;
  i {
    margin-right: 5px;
  }
  .timeline-content-info-title, .timeline-content-info-date {  
    width: calc(50% - 2px);
    display: inline-block;
  }
  @media (max-width: 500px) {
    .timeline-content-info-title, .timeline-content-info-date {  
      display: block;
      width:100%;
    } 
  }
}
.content-skills {
  font-size: 12px;
  padding:0;
  margin-bottom: 0;
  display:flex;
  flex-wrap: wrap;
  justify-content: center;
  li {
    background: #40484D;
    border-radius: 2px;
    display: inline-block;
    padding: 2px 10px;
    color: rgba(255,255,255,0.7);
    margin: 3px 2px;
    text-align: center;
    flex-grow: 1;
  }
}
}
.cd-timeline-content:after {
content: "";
display: table;
clear: both;
}
.cd-timeline-content h2 {
color: rgba(255,255,255,.9);
margin-top:0;
margin-bottom: 5px;
}
.cd-timeline-content p, .cd-timeline-content .cd-date {
color: rgba(255,255,255,.7);
font-size: 13px;
font-size: 0.8125rem;
}
.cd-timeline-content .cd-date {
display: inline-block;
}
.cd-timeline-content p {
margin: 1em 0;
line-height: 1.6;
}

.cd-timeline-content::before {
content: '';
position: absolute;
top: 16px;
right: 100%;
height: 0;
width: 0;
border: 7px solid transparent;
border-right: 7px solid #333C42;
}

@media only screen and (min-width: 768px) {
.cd-timeline-content h2 {
  font-size: 20px;
  font-size: 1.25rem;
}
.cd-timeline-content p {
  font-size: 16px;
  font-size: 1rem;
}
.cd-timeline-content .cd-read-more, .cd-timeline-content .cd-date {
  font-size: 14px;
  font-size: 0.875rem;
}
}
@media only screen and (min-width: 1170px) {
.cd-timeline-content {
  color: white;
  margin-left: 0;
  padding: 1.6em;
  width: 36%;
  margin: 0 5%
}
.cd-timeline-content::before {
  top: 24px;
  left: 100%;
  border-color: transparent;
  border-left-color: #333C42;
}
.cd-timeline-content .cd-date {
  position: absolute;
  width: 100%;
  left: 122%;
  top: 6px;
  font-size: 16px;
  font-size: 1rem;
}
.cd-timeline-block:nth-child(even) .cd-timeline-content {
  float: right;
}
.cd-timeline-block:nth-child(even) .cd-timeline-content::before {
  top: 24px;
  left: auto;
  right: 100%;
  border-color: transparent;
  border-right-color: #333C42;
}
.cd-timeline-block:nth-child(even) .cd-timeline-content .cd-read-more {
  float: right;
}
.cd-timeline-block:nth-child(even) .cd-timeline-content .cd-date {
  left: auto;
  right: 122%;
  text-align: right;
}
}