/* 英文 Avenir，中文 思源黑体（Noto Sans SC） */
body {
    font-family: "Avenir Next", Avenir, "Noto Sans SC", "Source Han Sans SC", "PingFang SC", -apple-system, sans-serif;
    margin: auto;
    font-size: 14px;
    background-color: #4a4440;
}

main{
    padding: 20px;
}

/* 标题用 Avenir 较粗字重（Semibold），正文保持默认 */
h1, h2, h3, h4 {
    padding: 0;
    margin: 0;
    font-weight: 600;
    color: #4a4035;
}

h1 {
    font-size: 25px;
    line-height: 30px;
    text-align: center;
}

h2 {
    font-size: 22px;
    line-height: 25px;
}

h3 {
    font-size: 18px;
    line-height: 22px;
}

h4 {
    font-size: 15px;
    line-height: 18px;
    font-style: italic;
}

a {
    text-decoration: none;
    color: #3d3630;
}

/* Definition of small fonted text, example: footer */
.smoll {
    font-size: 12px !important;
    line-height: 12px;
}

/* Scarves section */
.scarves {
    position:fixed;
    right: 0;
    margin-right:50px;
    z-index: 10;
}

.scarf {
    width:25px;
    height:100px;
    position:absolute;
    transition: all 1s, transform 1s;
    -moz-transition: all 1s, -moz-transform 1s;
    -webkit-transition: all 1s, -webkit-transform 1s;
    -o-transition: all 1s, -o-transform 1s;
    opacity:1;
}

.scarf .logo {
    width:21px;
    bottom: 0px;
    font-size: 15px;
    text-align: center;
    padding: 5px 2px;
    position: absolute;
    object-fit: cover;
}

.scarf:hover {
    margin-top:-25px !important;
    transition: all 1s, transform 1s;
    -moz-transition: all 1s, -moz-transform 1s;
    -webkit-transition: all 1s, -webkit-transform 1s;
    -o-transition: all 1s, -o-transform 1s;
    opacity:0.9;
}

.scarf:hover img {
    opacity: 0.75;
    transition: opacity 1s;
}

/* Sidebar header section */
.sidebar {
    margin-right: 1em;
    margin-bottom: 0;
    border-radius: 10px;
    flex-shrink: 0;
}

.sidebar-header {
    border-radius: 10px;
    max-width: 100%;
}

.avatar img {
    border-radius: 100%;
    width: 75px;
    margin-top: -60px;
    margin-left: 25px;
    position: relative; 
    z-index: 2;
}


/* Sidebar content section */
.sidebar-content {
    padding: 1em;
    background-color: #ebe5dc;
    color: #3d3630;
    border-radius: 10px;
}

.sidebar-content p {
    line-height: 17px;
    font-size: 15px;
}

.social {
    justify-content: center;
    margin-top: 0.5em;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}

.social-icon a {
    padding: 5px;
    box-sizing: border-box;
    display:inline-block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 14px;
    transition: color 0.3s;
}

.social-icon img {
    width: 15px !important;
    height: 15px !important;
    border-radius: 50%;
}

/* Sidebar menu section */
nav a {
    margin: 0.5rem 0.125rem;
    padding: 0.25rem 0;
    display: block;
    background-color: #e0d9cf;
    width: 100%;
    height: 30px;
    text-align: center;
    line-height: 30px;
    border-radius: 50px;
    transition: color 0.3s;
}

/* Footer under the sidebar */
.footer {
    color: #b8a99a !important;
    text-align: center;
    margin-top: 5px;
}

.footer a {
    color: #b8a99a !important;
}

.post {
    padding: 1em;
    background-color: #ebe5dc;
    border-radius: 10px;
    box-sizing: border-box;
    margin-bottom: 16px;
}

.post-feed {
    width: 32%;
}

@media (max-width: 768px) {
    .sidebar-content {
        display: none;
    }

    .post_description {
        display: none;
    }

    .footer {
        display: none;
    }

    .content {
        width: calc(100% - 1em);
    }

    .post-feed {
        width: 100%;
    } 
}

/* Medium devices (tablets, 576px-768px) */
@media (min-width: 577px) and (max-width: 768px) {
    body{
        width: 576px;
    }
}

@media (min-width: 769px) {
    .sidebar {
		width: 250px;
		height: auto;
		position: fixed;
		z-index: 1;
    }

    .content {
		width: calc(100% - 250px - 1em);
		margin-left: calc(250px + 1em);
    }

}

/* Large devices (desktops, 768px-992px) */
@media (min-width: 769px) and (max-width: 992px) {
    body{
        width: 769px;
    }

    .post-feed {
        width: 48%;
    }
}

@media (min-width: 993px) and (max-width: 1199px) {
    body{
        width: 993px;
    }
}

@media (min-width: 1200px) {
    body{
        width: 1200px;
    }
}

/* Images - 按 EXIF 方向显示，避免手机照片横过来 */
img {
    max-width: 100%;
    height: auto;
    display: block;
    border-radius: 10px;
    opacity: 1;
    transition: all 1s;
    image-orientation: from-image;
}

img:hover {
    opacity: 0.95;
}

/* Post */
.post-header {
    line-height: 100%;
    color: #3d3630;
}

.date {
    color: #5c5248;
    font-style: italic;
}

iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
}

/* Post - Top section（文章页主标题也用粗体） */
.article {
    font-size: 35px !important;
    line-height: 40px !important;
    padding-bottom: 15px;
    font-weight: 600;
}

.page-date{
    text-align: right !important;
}

.page-divider {
    margin-top: 1em;
    border-top: 1px solid #c9b8a8;
}

/* Post - Tags */
.tags {
    text-align: right;
    margin-bottom: 0em;
}

.tags a {
    color: #7d7268 !important;
    border-radius: 5px;
    padding: 0.25em;
}

.tags a:hover {
    color: #c9a86c !important;
}

/* ========== 成长时间线（Stellar 风格：每行 = 轴线列 + 内容列，flex 布局） ========== */
.timeline-page {
    max-width: 720px;
    margin: 0 auto;
    padding: 1em 0 3em;
    box-sizing: border-box;
}

.timeline-title {
    font-size: 28px;
    font-weight: 600;
    color: #4a4035;
    text-align: center;
    margin-bottom: 2em;
}

.timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-left: 32px;
}

.timeline::before {
    content: '';
    position: absolute;
    left: 15px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #c9b8a8;
    border-radius: 1px;
    z-index: 0;
}

.timeline-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    margin-left: -32px;
    position: relative;
    z-index: 1;
}

.timeline-item__axis {
    width: 32px;
    flex-shrink: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 6px;
}

.timeline-item__body {
    flex: 1;
    min-width: 0;
}

.timeline-item--year {
    margin-top: 1.5em;
    margin-bottom: 0.75em;
}

.timeline-item--year:first-child {
    margin-top: 0;
}

.timeline-year-marker {
    display: block;
    width: 2px;
    height: 8px;
    background: #c9a86c;
    border-radius: 1px;
}

.timeline-year-text {
    font-size: 22px;
    font-weight: 600;
    color: #c9a86c;
    letter-spacing: 0.05em;
}

.timeline-item--node {
    padding-bottom: 2em;
}

.timeline .timeline-item:last-child {
    padding-bottom: 0;
}

.timeline-dot {
    display: block;
    width: 16px;
    height: 16px;
    background: #c9a86c;
    border: 3px solid #ebe5dc;
    border-radius: 50%;
    box-sizing: border-box;
}

.timeline-content {
    background: #ebe5dc;
    border: 1px solid #d9cfc4;
    border-radius: 10px;
    padding: 0;
    color: #3d3630;
    overflow: hidden;
}

.timeline-content-inner {
    display: flex;
    align-items: stretch;
    gap: 0;
}

.timeline-content-text {
    flex: 1;
    padding: 1em 1.25em;
    min-width: 0;
}

.timeline-node-thumb {
    flex-shrink: 0;
    width: 120px;
    background: #e0d9cf;
}

.timeline-node-thumb img {
    width: 120px;
    height: 120px;
    object-fit: cover;
    display: block;
    border-radius: 0 10px 10px 0;
}

/* 无图片时正文保持圆角 */
.timeline-content:not(:has(.timeline-node-thumb)) .timeline-content-text {
    border-radius: 10px;
}

.timeline-node-title {
    font-size: 17px;
    font-weight: 600;
    color: #4a4035;
    margin-bottom: 0.25em;
}

.timeline-node-meta {
    font-size: 12px;
    color: #7d7268;
    margin-bottom: 0.5em;
}

.timeline-node-date {
    margin-right: 0.5em;
}

.timeline-node-age {
    color: #c9a86c;
    font-weight: 500;
}

.timeline-node-body {
    font-size: 14px;
    line-height: 1.6;
}

.timeline-node-body a {
    color: #c9a86c;
}

.timeline-empty {
    color: #7d7268;
    padding: 2em;
    text-align: center;
}

.timeline-empty code {
    background: #e0d9cf;
    padding: 0.2em 0.4em;
    border-radius: 4px;
    font-size: 13px;
}