*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#24313d;font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;background:radial-gradient(ellipse at 20% 0%,#aac8db,transparent 55%),radial-gradient(ellipse at 90% 15%,#d7dbc9,transparent 50%),#e7eced;background-attachment:fixed}a{color:inherit;text-decoration:none}a:hover{color:#17675e}button,input{font:inherit}button{cursor:pointer}header.top{max-width:1100px;margin:auto;padding:27px 25px;display:flex;justify-content:space-between;align-items:center}.brand{font-weight:700;letter-spacing:.1em}.top nav{display:flex;gap:24px;color:#55636c}.intro{text-align:center;margin:32px auto 42px;padding:0 20px}.intro .eyebrow{font:12px monospace;letter-spacing:.18em;color:#607784}.intro h1{font-family:Georgia,"Songti SC",serif;font-size:47px;font-weight:400;margin:17px 0 12px}.intro p{color:#526572;margin:6px 0}.board{max-width:1080px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}.column{display:grid;gap:18px}.card{border:1px solid #ffffff70;border-radius:23px;background:#ffffff66;box-shadow:0 10px 35px #435e7210;backdrop-filter:blur(22px);padding:24px}.card-label{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:20px;font-size:12px;color:#64777e}.card-label h2{font:inherit;margin:0;letter-spacing:.08em}.card-label a:hover{text-decoration:underline}.launchers{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:8px 0}.launchers a{text-align:center;font-size:11px;color:#566a76}.app-icon{display:grid;place-items:center;font:bold 24px monospace;width:59px;height:59px;margin:auto auto 9px;border-radius:17px;background:#f9faf6;box-shadow:0 5px 14px #45627617;color:#206d67}.launchers a:first-child .app-icon{background:#233d4b;color:#c3eee4}.profile-top{display:flex;gap:16px;align-items:center}.avatar{width:65px;height:65px;border-radius:18px;object-fit:cover}.profile-top h2{font-size:20px;margin:0}.muted{color:#6b7b83;font-size:13px}.profile p{font-size:14px}.status{display:inline-flex;gap:7px;align-items:center;color:#30735a;font-size:12px}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:#4a9b74}.rows{display:grid;gap:0}.row{display:block;padding:12px 0;border-bottom:1px solid #526b7314}.row:last-child{border:0}.row .date{font:11px monospace;color:#74858c}.row h3{font-size:14px;font-weight:500;line-height:1.5;margin:3px 0}.project-icon{font:21px monospace;color:#276e70;margin-bottom:12px}.project h3{font-size:19px;margin:5px 0 8px}.project p{font-size:13px;color:#60727c}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid #77929830;border-radius:20px;padding:3px 9px;font-size:11px;color:#566e77}.text-link{font-size:12px;display:inline-block;margin-top:18px;color:#226a63}.focus-list{display:grid;gap:16px}.focus-list strong{display:block;font-size:14px;font-weight:500}.focus-list span{font-size:12px;color:#6c7b82}.quote{font:22px/1.6 Georgia,"Songti SC",serif;margin:5px 0 15px}.footer{max-width:1080px;margin:35px auto 90px;padding:0 24px;display:flex;justify-content:space-between;font-size:11px;color:#70818a}.search-trigger{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);border:1px solid #fff8;background:#f8faf9d9;backdrop-filter:blur(20px);box-shadow:0 8px 30px #344f7226;border-radius:16px;padding:12px 22px;width:min(430px,90vw);text-align:left;color:#61747f;z-index:5}.search-trigger kbd{float:right;font:11px monospace;background:#e2e9e9;border-radius:5px;padding:3px 7px}dialog{border:1px solid #fff;border-radius:22px;background:#f4f8f8;width:min(620px,92vw);padding:24px;color:#253e49;box-shadow:0 25px 80px #142f4740}dialog::backdrop{background:#22364655;backdrop-filter:blur(5px)}.search-head{display:flex;gap:12px}.search-head input{width:100%;border:1px solid #cad6da;border-radius:10px;padding:12px;background:white}.close{border:0;background:transparent;font-size:22px}.results{max-height:50vh;overflow:auto;margin-top:15px}.result{display:block;padding:12px;border-bottom:1px solid #dae3e7}.empty{color:#6e7e85;padding:18px 0}.page-wrap{max-width:850px;margin:35px auto 50px;padding:0 24px}.paper{padding:40px;background:#ffffffa3;border-radius:24px;border:1px solid #fff8}.paper h1{font:34px/1.4 Georgia,"Songti SC",serif;margin-top:0}.paper h2{font-size:23px;margin-top:32px}.paper h3{font-size:18px}.paper a{color:#1f716b;border-bottom:1px solid #1f716b30}.paper img{max-width:100%;height:auto}.paper pre,.paper .ql-code-block-container{white-space:pre-wrap;overflow:auto;background:#e8edef;padding:16px;border-radius:10px;font:13px/1.7 monospace}.paper code{font-family:monospace}.paper table{display:block;overflow:auto;border-collapse:collapse}.paper td,.paper th{padding:8px;border:1px solid #cad5da}.post-meta{font:12px monospace;color:#71818b;margin-bottom:30px}.back{font-size:13px;color:#56717a;display:inline-block;margin-bottom:20px}.filters{display:flex;gap:8px;margin:20px 0;flex-wrap:wrap}.filter{border:1px solid #abbfc64d;background:transparent;border-radius:20px;padding:5px 13px;font-size:12px;color:#5b727c}.filter.active{background:#2d655f;color:#fff}.archive-row{display:flex;justify-content:space-between;gap:20px;padding:19px 0;border-bottom:1px solid #69808a25}.archive-row time{font:12px monospace;color:#70818a;white-space:nowrap}.hidden{display:none!important}@media(max-width:850px){.board{grid-template-columns:1fr 1fr}.column:last-child{grid-column:1/-1;grid-template-columns:1fr 1fr}.intro h1{font-size:38px}}@media(max-width:560px){header.top{padding:20px}.top nav{gap:16px;font-size:12px}.board{grid-template-columns:1fr;padding:0 18px}.column:last-child{grid-column:auto;grid-template-columns:1fr}.intro{margin:18px auto 28px}.intro h1{font-size:32px}.card{padding:22px}.paper{padding:25px 20px}.page-wrap{padding:0 14px}.footer{display:block}.footer span{display:block;margin-bottom:8px}.archive-row{display:block}.launchers{padding:6px 12px}.card-label{margin-bottom:14px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.music-main{display:flex;gap:17px;align-items:center}.music-cover{width:91px;height:91px;border-radius:13px;object-fit:cover;background:#d7dfdf}.music-info{min-width:0;flex:1}.music-info h3{font-size:16px;line-height:1.4;margin:0 0 6px}.music-info p{font-size:11px;color:#6e8189;margin:0 0 12px}.music-badge{font-size:10px}.music-controls{display:flex;align-items:center;gap:5px}.music-controls button{background:transparent;border:0;color:#587078;border-radius:50%;width:30px;height:30px;padding:0;font-size:17px}.music-controls button:hover{background:#fff8}.music-controls .music-play{background:#253f49;color:#fff;font-size:13px;width:34px;height:34px}.music-progress{display:flex;gap:7px;align-items:center;margin-top:18px;color:#73858a;font:10px monospace}.music-progress input{width:100%;height:3px;accent-color:#3b776d;cursor:pointer}.music-bottom{display:flex;justify-content:space-between;gap:10px;font-size:10px;margin-top:10px;color:#71848a}.music-bottom a{color:#316b65}.music-list{margin-top:17px;border-top:1px solid #60798320}.music-list button{display:block;text-align:left;width:100%;background:transparent;border:0;padding:11px 0;font-size:12px;color:#536e78}.music-list button.selected{color:#236b5e;font-weight:600}.music-list button span{display:block;font-size:10px;font-weight:400;margin-top:3px;color:#7c8a8e}

.music-volume{display:flex;align-items:center;gap:8px;margin:12px 0 2px;color:var(--muted);font-size:11px}.music-volume input{width:70px;accent-color:#7b98a7}.music-volume span:last-child{margin-left:auto}
.navigation-notice{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:9;background:#f4f8f8;border:1px solid #b6cccb;border-radius:12px;padding:10px 16px;box-shadow:0 8px 30px #344f7226;font-size:12px;max-width:90vw}.navigation-notice[hidden]{display:none}.navigation-notice button{margin-left:12px;border:0;background:#2d655f;color:white;border-radius:8px;padding:4px 10px}

.music-global{position:fixed;left:22px;bottom:20px;width:340px;z-index:6;background:#f0f5f5ed;padding:18px;max-height:80vh;overflow:auto;box-shadow:0 10px 40px #344f7230}.music-global .card-label{margin-bottom:12px}.music-global .music-cover{width:62px;height:62px;border-radius:14px}.music-global .music-info h3{font-size:14px}.music-global .music-info p{margin-bottom:6px}.music-global .music-progress{margin-top:10px}#music-expand{border:0;background:transparent;color:#587078;font-size:20px;padding:0 4px}.music-global.is-compact .music-progress,.music-global.is-compact .music-bottom,.music-global.is-compact .music-volume{display:none}.music-global .music-list{max-height:220px;overflow:auto}.search-trigger{left:auto;right:22px;transform:none;width:280px}.footer{padding-bottom:170px}@media(max-width:560px){.music-global{left:12px;bottom:12px;width:calc(100vw - 84px);max-width:340px;padding:14px}.music-global .music-badge{font-size:9px}.music-global .music-main{gap:10px}.music-global .music-cover{width:48px;height:48px}.search-trigger{right:12px;bottom:12px;width:48px;height:48px;padding:0;text-align:center;font-size:0}.search-trigger:before{content:'⌕';font-size:25px}.search-trigger kbd{display:none}.music-volume{flex-wrap:wrap}.music-volume span:last-child{margin-left:0}}

.music-global[hidden],.music-reopen[hidden]{display:none!important}.music-handle{cursor:grab;touch-action:none;user-select:none}.is-locked .music-handle{cursor:default}.is-dragging .music-handle{cursor:grabbing}.music-handle:focus-visible{outline:2px solid #3b776d;outline-offset:4px;border-radius:6px}.music-window-controls{display:flex;gap:4px;align-items:center}.music-window-controls button{border:0;background:transparent;color:#587078;font-size:18px;width:28px;height:28px;border-radius:7px;padding:0}.music-window-controls button:hover{background:#d9e6e6}.music-window-controls button[aria-pressed=true]{background:#d0e5df;color:#206a58}.music-position{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;font-size:11px;color:#61747f}.music-position select{border:1px solid #b8cbce;border-radius:8px;padding:4px;color:#45636c;background:#f6faf9}.music-global.is-compact .music-position{display:none}.music-reopen{position:fixed;left:18px;bottom:20px;z-index:6;background:#f0f5f5ed;color:#356a63;border:1px solid #fff;border-radius:14px;padding:11px 16px;box-shadow:0 8px 30px #344f7226}@media(max-width:560px){.music-reopen{left:12px;bottom:12px}}

.learning-kind{font-size:11px;color:#527e77}.learning-row h2{font-size:17px;margin:8px 0;font-weight:500}.learning-row p{font-size:13px;color:#64777e;margin:6px 0}.learning-arrow{color:#527e77}.learning-source{font-size:13px}.top nav{flex-wrap:wrap}@media(max-width:560px){.top nav{gap:12px}.learning-row{display:flex}}
:root{color-scheme:light;--muted:#64777e}.theme-toggle{border:1px solid #77929840;border-radius:20px;background:#ffffff66;color:#45636c;padding:6px 12px;font-size:12px;white-space:nowrap}.top nav{margin-left:auto;margin-right:20px}.theme-toggle:focus-visible{outline:2px solid #3b776d;outline-offset:3px}
html[data-theme=night]{color-scheme:dark;--muted:#a4b6c3}html[data-theme=night] body{color:#e3ebf1;background:radial-gradient(ellipse at 20% 0%,#22394b,transparent 55%),radial-gradient(ellipse at 90% 15%,#213c3a,transparent 50%),#101820;background-attachment:fixed}html[data-theme=night] .card{background:#20303caa;border-color:#6d8b9b35;box-shadow:0 10px 35px #0003}html[data-theme=night] .paper{background:#1b2937e8;border-color:#6d8b9b40}html[data-theme=night] .music-global,html[data-theme=night] .music-reopen,html[data-theme=night] .search-trigger,html[data-theme=night] dialog,html[data-theme=night] .navigation-notice{background:#1b2b38f5;color:#c2d5df;border-color:#65859560}html[data-theme=night] .theme-toggle{background:#253b49;color:#d0e1ea;border-color:#65859560}
html[data-theme=night] .muted,html[data-theme=night] .top nav,html[data-theme=night] .intro p,html[data-theme=night] .intro .eyebrow,html[data-theme=night] .card-label,html[data-theme=night] .project p,html[data-theme=night] .focus-list span,html[data-theme=night] .footer,html[data-theme=night] .post-meta,html[data-theme=night] .learning-row p,html[data-theme=night] .music-info p,html[data-theme=night] .music-bottom,html[data-theme=night] .music-position,html[data-theme=night] .music-list button span,html[data-theme=night] .archive-row time,html[data-theme=night] .row .date{color:#a4b6c3}html[data-theme=night] a:hover,html[data-theme=night] .paper a,html[data-theme=night] .text-link,html[data-theme=night] .learning-kind,html[data-theme=night] .learning-arrow,html[data-theme=night] .music-bottom a,html[data-theme=night] .music-list button.selected{color:#91d7c6}html[data-theme=night] .chip,html[data-theme=night] .filter,html[data-theme=night] .music-list button,html[data-theme=night] .music-controls button,html[data-theme=night] .music-window-controls button,html[data-theme=night] #music-expand{color:#bdd1db}html[data-theme=night] .filter.active,html[data-theme=night] .music-controls .music-play{background:#438575;color:#fff}html[data-theme=night] .music-window-controls button:hover,html[data-theme=night] .music-controls button:hover,html[data-theme=night] .music-window-controls button[aria-pressed=true]{background:#35534e;color:#c8f0df}html[data-theme=night] .paper pre,html[data-theme=night] .paper .ql-code-block-container,html[data-theme=night] .search-head input,html[data-theme=night] .music-position select{background:#12212e;color:#dde9f0;border-color:#55717e}html[data-theme=night] .search-trigger kbd{background:#314754}html[data-theme=night] .app-icon{background:#304655;color:#bbded8}html[data-theme=night] .launchers a,html[data-theme=night] .project-icon,html[data-theme=night] .back{color:#aac7d3}html[data-theme=night] .status{color:#92c9ad}html[data-theme=night] .archive-row,html[data-theme=night] .row,html[data-theme=night] .music-list,html[data-theme=night] .result{border-color:#76909f30}html[data-theme=night] .paper td,html[data-theme=night] .paper th{border-color:#526978}
@media(max-width:560px){header.top{flex-wrap:wrap;gap:12px}.top nav{order:3;flex-basis:100%;margin:0;justify-content:center}.theme-toggle{margin-left:auto}}

.essay-space{max-width:780px}.essay-intro h1{font-size:29px}.essay-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:22px 0;font-size:13px}.essay-write{border:0!important;background:#2d655f;color:#fff!important;padding:9px 17px;border-radius:12px}.essay-help{font-size:12px;color:var(--muted)}.essay-help summary{cursor:pointer}.essay-timeline{display:grid;gap:20px;margin-top:24px}.essay-entry-head{display:flex;align-items:center;gap:12px}.essay-entry-head img{border-radius:12px}.essay-entry-head p{font-size:11px;color:var(--muted);margin:2px 0}.essay-entry h2{font-size:20px;font-weight:500;line-height:1.5;margin:20px 0 12px}.essay-excerpt{white-space:pre-line;font-size:14px}.essay-entry-footer{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);gap:12px;margin-top:20px}.essay-empty{text-align:center;padding:40px}.essay-empty>span{font-size:30px;color:#6f948d}.essay-empty h2{font-size:19px;font-weight:500}.essay-body img{border-radius:12px}.top{gap:12px}@media(max-width:560px){.essay-intro h1{font-size:24px}.top nav{gap:14px}}

.nav-write{border:1px solid #77929850;border-radius:12px;padding:5px 10px}.comment-section{margin-top:24px}.comment-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.comment-header h2{font-size:21px}.comment-help{color:var(--muted);font-size:13px;line-height:1.8}.comment-status{color:var(--muted);font-size:14px}.comment-section{--waline-font-size:14px;--waline-theme-color:#2d655f;--waline-active-color:#3d8279;--waline-bg-color:transparent;--waline-text-color:inherit}

/* Homepage reading hierarchy and responsive layout. */
header.top{max-width:1180px;padding:24px 32px}.top nav{align-items:center;gap:22px}
.home-intro{max-width:1116px;text-align:left;margin:28px auto 36px;padding:30px 0 34px;border-bottom:1px solid #77929830}
.home-intro h1{font-size:44px;line-height:1.25;margin:16px 0}.home-intro>p:last-of-type{font-size:15px;line-height:1.9}
.home-actions{display:flex;gap:12px;margin-top:24px}.home-actions a{padding:9px 16px;border:1px solid #77929840;border-radius:10px;font-size:13px}.home-actions a:first-child{background:#2d655f;color:#fff;border-color:#2d655f}
.home-layout{max-width:1180px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:280px minmax(0,1fr);gap:28px;align-items:start}
.home-sidebar{display:grid;gap:20px}.home-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;min-width:0}
.home-layout .card{border-radius:16px;padding:24px;background:#ffffffb3;backdrop-filter:none;box-shadow:0 4px 18px #435e7208;border-color:#77929822;min-width:0}
.home-layout .card-label{margin-bottom:18px;align-items:baseline}.home-layout .card-label h2{font-size:12px;font-weight:600;line-height:1.6}.home-layout .card-label a{white-space:nowrap;font-size:11px}
.home-main>.project,.home-main>.card:nth-child(2),.home-main>.card:last-child{grid-column:1/-1}
.home-main .project{padding:30px;background:#eff7f3e0;border-color:#4d897a30}.home-main .project h3{font-size:25px;line-height:1.4;margin:8px 0 12px}.home-main .project p{max-width:600px;font-size:14px;line-height:1.9}.home-main .project-icon{font-size:19px;margin-bottom:18px}
.home-main .row{padding:14px 0}.home-main .row h3{font-size:15px;line-height:1.65;overflow-wrap:anywhere}.home-main .rows .row{display:grid;grid-template-columns:90px minmax(0,1fr);gap:16px;align-items:baseline}.home-main .row .date{font-size:12px}.home-main .row .muted{font-size:12px}.home-layout .text-link{font-size:13px;margin-top:16px}.home-sidebar .profile-top{gap:12px}.home-sidebar .avatar{width:54px;height:54px;border-radius:14px}.home-sidebar .profile-top h2{font-size:21px}.home-sidebar .profile-top .muted{font-size:11px}.home-sidebar .profile p{line-height:1.9}.home-sidebar .quote{font-size:19px;line-height:1.8}.home-sidebar .focus-list{gap:18px}.home-sidebar .focus-list span{line-height:1.8}.home-layout .chips{gap:8px}.home-layout .chip{padding:4px 10px}
html[data-theme=night] .home-layout .card{background:#1d2d3de8;border-color:#6d8b9b35}html[data-theme=night] .home-main .project{background:#203c3ce8;border-color:#6ea59440}
.footer{max-width:1180px;margin:36px auto 0;padding:26px 32px 170px;border-top:1px solid #77929822}
@media(max-width:1180px){.home-intro{margin-left:32px;margin-right:32px}}
@media(max-width:900px){.home-layout{grid-template-columns:240px minmax(0,1fr);gap:20px}.home-main{grid-template-columns:1fr}.home-main>.card{grid-column:1}.home-layout .card{padding:20px}.top nav{gap:14px;font-size:13px}.home-main .project h3{font-size:22px}}
@media(max-width:680px){header.top{padding:20px}.home-intro{margin:14px 20px 26px;padding:20px 0 26px}.home-intro h1{font-size:34px}.home-intro .eyebrow{font-size:10px;letter-spacing:.12em}.home-intro>p:last-of-type{font-size:13px}.home-layout{padding:0 20px;grid-template-columns:1fr;gap:20px}.home-sidebar{display:contents}.home-sidebar>.card{order:2}.home-sidebar>.profile{order:0}.home-main{order:1;gap:16px}.home-main .rows .row{grid-template-columns:1fr;gap:2px}.home-layout .card{padding:22px}.footer{margin:28px 20px 0;padding:24px 0 170px}.home-actions{margin-top:20px}}

/* Keep floating controls away from the profile column. */
.home-intro{margin-top:12px;margin-bottom:28px;padding-top:20px;padding-bottom:26px}.home-intro h1{font-size:40px}
@media(min-width:681px){.music-global{left:auto;right:84px;width:280px}.search-trigger{width:48px;height:48px;padding:0;text-align:center;font-size:0}.search-trigger:before{content:'⌕';font-size:25px}.search-trigger kbd{display:none}}

.essay-year>summary{cursor:pointer;font-size:22px;font-weight:600;padding:14px 0;border-bottom:1px solid var(--border,#ddd)}.essay-year>summary span{font-size:12px;font-weight:400;color:var(--muted);margin-left:12px}.essay-year-entries{display:grid;gap:20px;margin-top:20px}
