@font-face{font-family:blog-icons;src:url('assets/iconfont.woff2') format('woff2');font-display:block}
:root{font-size:14px;--primary:#49b1f5;--text:#4b4948;--muted:#858585;--page:#fff;--card:#fff;--soft:#f5f5f5;--border:#e8e8e8;--shadow:0 3px 6px 3px rgba(7,17,27,.06);--hover-shadow:0 3px 6px 3px rgba(7,17,27,.15);--wave1:rgba(255,255,255,.7);--wave2:rgba(255,255,255,.5);--wave3:rgba(255,255,255,.3);--wave4:#fff}
:root.dark{color-scheme:dark;--text:#b8b8b8;--muted:#969696;--page:#282828;--card:#303030;--soft:#373737;--border:#484848;--wave1:rgba(40,40,40,.7);--wave2:rgba(40,40,40,.5);--wave3:rgba(40,40,40,.3);--wave4:#282828}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:68px}body{margin:0;background:var(--page);color:var(--text);font-family:'Helvetica Neue',Helvetica,'PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none}a{color:inherit;text-decoration:none}a,button{transition:color .2s,background .2s,transform .2s}img{display:block;max-width:100%}button:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:5px}input:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:1px}[hidden]{display:none!important}.icon{font-family:blog-icons!important;font-style:normal;font-weight:normal;display:inline-block;line-height:1;vertical-align:-.07em;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:#777;border-radius:10px}::-webkit-scrollbar-track{background:var(--page)}.skip-link{position:fixed;top:-50px;left:20px;padding:10px;background:var(--card);z-index:3000}.skip-link:focus{top:8px}.icon-button{display:inline-grid;place-items:center;width:32px;height:32px;font-size:24px}
.site-header{position:fixed;inset:0 0 auto;height:3.6rem;display:flex;align-items:center;padding:0 20px;gap:14px;z-index:100;transition:background .3s,transform .3s,box-shadow .3s;color:#fff}.site-header.scrolled{background:rgba(255,255,255,.85);color:var(--text);backdrop-filter:blur(10px);box-shadow:0 3px 8px rgba(0,0,0,.08)}.dark .site-header.scrolled{background:rgba(40,40,40,.9)}.brand img{width:40px;height:40px;border-radius:50%;transition:transform 1s}.brand img:hover{transform:rotate(360deg)}.desktop-nav{margin-left:auto;display:flex;align-items:center;height:100%;gap:0;font-size:14px;font-weight:500}.desktop-nav>a,.desktop-nav>button,.more-button{display:flex;align-items:center;gap:4px;padding:0 10px;height:100%;white-space:nowrap;position:relative}.desktop-nav .icon{font-size:19px}.desktop-nav>a:hover,.desktop-nav>button:hover,.more-button:hover{color:var(--primary)}.desktop-nav>a.active{color:var(--primary)}.desktop-nav>a:after{content:'';position:absolute;bottom:5px;left:10px;right:10px;height:2px;background:var(--primary);transform:scaleX(0);transition:transform .2s}.desktop-nav>a:hover:after{transform:scaleX(1)}.desktop-nav .search-button{width:46px;margin-right:4px}.search-button .icon{font-size:28px}.search-button:hover{transform:scale(1.08)}.more-wrap{height:100%;position:relative}.dropdown{position:absolute;top:100%;left:0;min-width:145px;background:var(--card);color:var(--text);box-shadow:var(--shadow);border-radius:6px;padding:7px;opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s}.more-wrap:hover .dropdown,.more-wrap:focus-within .dropdown,.more-wrap.open .dropdown{opacity:1;visibility:visible;transform:translateY(0)}.dropdown a,.dropdown button{display:flex;align-items:center;gap:8px;padding:11px;width:100%;text-align:left;border-radius:3px}.dropdown a:hover,.dropdown button:hover{background:var(--soft);color:var(--primary)}.theme-toggle{flex-shrink:0;position:relative;width:40px;height:20px;border-radius:20px;background:#676767;color:#fff;font-size:14px;display:flex;align-items:center;justify-content:space-between;padding:0 4px}.theme-knob{position:absolute;left:2px;top:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .25s}.dark .theme-knob{transform:translateX(20px)}.theme-moon{font-size:16px;line-height:1}.mobile-menu,.mobile-search{display:none}
.hero{position:relative;height:100vh;min-height:450px;overflow:hidden;background:#176c7a;color:#fff}.hero-image{width:100%;height:100%;object-fit:cover;animation:hero-settle 2s ease-out both}.hero-mask{position:absolute;inset:0;background:rgba(0,0,0,.2);transition:background .3s}.dark .hero-mask{background:rgba(0,0,0,.4)}.hero h1{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);margin:0;padding:7px;font-size:36px;line-height:48px;white-space:nowrap;font-weight:400;text-shadow:0 2px 5px rgba(0,0,0,.25)}.typewriter{position:absolute;top:60%;left:0;width:100%;text-align:center;font-size:16.8px;transform:translateY(-50%);text-shadow:0 2px 4px rgba(0,0,0,.4)}.cursor{animation:blink 1s steps(2,start) infinite;margin-left:3px}.scroll-down{position:absolute;left:50%;bottom:75px;transform:translateX(-50%);padding:10px;z-index:2;color:#fff;font-size:23px;animation:arrow-bounce 1.5s infinite;line-height:1}.waves{position:absolute;bottom:0;width:100%;height:6rem;min-height:6rem;pointer-events:none}.parallax>use{animation:move-forever 25s cubic-bezier(.55,.5,.45,.5) infinite}.parallax>use:nth-child(1){fill:var(--wave1);animation-delay:-2s;animation-duration:7s}.parallax>use:nth-child(2){fill:var(--wave2);animation-delay:-3s;animation-duration:10s}.parallax>use:nth-child(3){fill:var(--wave3);animation-delay:-4s;animation-duration:13s}.parallax>use:nth-child(4){fill:var(--wave4);animation-delay:-5s;animation-duration:20s}.hero.compact{height:24rem;min-height:300px}.hero.compact .hero-image{object-position:center 54%}.hero.compact h1{top:52%;font-size:34px;max-width:90%;white-space:normal;text-align:center;line-height:1.5}.hero.compact .typewriter,.hero.compact .scroll-down{display:none}.hero.compact .waves{height:4rem;min-height:4rem}
.layout{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:11px;padding:35px 7.5px 0;align-items:start;min-height:600px;scroll-margin-top:64px}.main-column{min-width:0}.article-list{display:grid;gap:15px}.card{background:var(--card);border-radius:5px 5px 8px 8px;box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .3s,transform .3s,background .3s}.article-card:hover{box-shadow:var(--hover-shadow);transform:translateY(-3px)}.article-card{height:224px;display:flex;align-items:center}.article-card:nth-child(even){flex-direction:row-reverse}.article-cover{flex:0 0 40%;height:100%;display:grid;place-items:center;overflow:hidden}.article-cover img{height:210px;width:210px;object-fit:contain;transition:transform .4s}.article-cover:hover img{transform:scale(1.1)}.article-info{flex:1;min-width:0;padding:0 20px}.article-title{font-size:1.6rem;font-weight:600;line-height:2.4;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.article-title a:hover{color:var(--primary)}.meta{font-size:14px;line-height:1.4;color:var(--muted);font-weight:500}.meta .icon{font-size:14px;margin-right:4px}.meta .pin .icon{color:#f26c60}.meta>span,.meta>a{margin-right:4px;display:inline}.meta .separator{margin:0 4px}.meta a:hover{color:var(--primary)}.article-summary{font-size:1.2rem;line-height:3;margin:8px 0 0;color:#676767;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dark .article-summary{color:var(--text)}.pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin:40px 0}.pagination button{height:32px;min-width:32px;display:grid;place-items:center;background:#f4f4f5;color:#606266;font-weight:700;border-radius:2px}.dark .pagination button{background:var(--soft);color:var(--text)}.pagination button.active{background:#00c4b6;color:#fff}.pagination button:hover{color:var(--primary)}.pagination button:disabled{opacity:.4;cursor:default}.pagination .page-gap{padding:8px;color:var(--muted)}
.sidebar{display:grid;gap:15px}.profile-cover{width:100%;height:140px;object-fit:cover;cursor:zoom-in}.profile-identity{display:flex;align-items:center;padding:0 8px 0 14px;height:32px;gap:7px}.profile-identity .avatar{width:60px;height:60px;border-radius:50%;margin-top:-24px;position:relative;border:2px solid var(--card);transition:transform 1s}.profile-identity .avatar:hover{transform:rotate(360deg)}.profile-identity .name{font-size:14px;color:#222;padding-top:5px}.dark .profile-identity .name{color:var(--text)}.profile-say{height:63px;margin:0;padding:12px 8px;font-family:'SimSun','Songti SC',serif;line-height:1.7;font-size:14px}.profile-stats{display:flex;justify-content:space-around;padding:14px 28px;color:#533737}.dark .profile-stats{color:var(--text)}.profile-stats a{display:flex;flex-direction:column;align-items:center;gap:4px}.profile-stats a:hover{color:var(--primary)}.profile-stats b{font-size:19.6px;font-weight:400}.gitee-link{display:block;margin:0 28px;text-align:center;border-radius:3px;background:#533737;color:#fff;font-size:16.8px;line-height:27px}.gitee-link:hover{background:var(--primary)}.gitee-link .icon{margin-right:7px}.social-links{display:flex;align-items:center;justify-content:space-around;padding:14px 44px;gap:12px}.social-links .icon{font-size:25px}.social-links a:hover,.social-links button:hover{color:var(--primary);transform:translateY(-2px)}.info-card{padding:20px 24px}.info-card h2{font-size:16px;font-weight:400;margin:0 0 12px}.info-card h2 .icon{margin-right:5px}.announcement h2 .icon{color:#f66;animation:swing 2s infinite}.announcement p{font-size:14px;line-height:1.4;overflow-wrap:anywhere;margin:0 0 18px}.announcement p:last-child{margin-bottom:0}.announcement a:hover{color:var(--primary)}.contact-card h2 .icon{color:#87cd31}.contact-images{display:flex;gap:16px;align-items:center}.contact-images button{padding:0}.contact-images img{width:80px;height:80px;object-fit:cover;border-radius:4px}.contact-images .missing-qr{object-fit:contain}.tag-cloud{line-height:1.5;font-size:15px;display:flex;gap:0 8px;flex-wrap:wrap}.tag-cloud a:hover{color:var(--primary)!important;transform:scale(1.08)}.site-stats{margin:0}.site-stats div{display:flex;justify-content:space-between;line-height:2.1;padding:0 5px}.site-stats dd{margin:0;font-weight:600}.site-footer{height:140px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:14px;margin-top:5px}.site-footer>a:hover{color:var(--primary)}.badges{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.badges a{display:flex;border-radius:2px;overflow:hidden;font-size:10px;color:#fff;line-height:20px}.badges span{background:#555;padding:0 5px}.badges b{font-weight:400;padding:0 5px}.orange{background:#ed8647}.green{background:#159957}.blue{background:#168fc3}.purple{background:#9c27b0}
input[type=range]{accent-color:#62c28a;height:4px;cursor:pointer;min-width:0}.back-top{position:fixed;bottom:58px;right:42px;width:43px;height:43px;background:#6cd1f2;color:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:9px;opacity:0;visibility:hidden;transform:translateY(12px);z-index:110}.back-top span{font-size:12px}.back-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-top:hover{background:var(--primary);transform:translateY(-3px)}.notifications{position:fixed;top:76px;right:20px;display:grid;gap:16px;z-index:180;pointer-events:none}.notification{width:224px;padding:18px 22px;border-radius:8px;background:rgba(255,255,255,.73);box-shadow:var(--shadow);color:#344b55;position:relative;animation:notice-enter .4s ease both;pointer-events:auto}.notification strong{font-size:16px;line-height:1.5;display:block;padding-right:18px}.notification p{font-size:14px;line-height:1.8;margin:7px 0 0}.notification button{position:absolute;top:12px;right:10px;color:#7b9096;font-size:20px}.notification.fade-out{opacity:0;transform:translateX(20px);transition:.4s}.toast{position:fixed;top:68px;left:50%;transform:translate(-50%,-10px);background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);padding:12px 20px;color:var(--text);border-radius:6px;z-index:250;opacity:0;pointer-events:none;transition:.25s;max-width:90vw}.toast.show{opacity:1;transform:translate(-50%,0)}
dialog{border:none;border-radius:8px;background:var(--card);color:var(--text);box-shadow:0 8px 40px rgba(0,0,0,.25);padding:22px;max-height:85vh;overflow:auto}dialog::backdrop{background:rgba(0,0,0,.5);backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.dialog-heading h2{font-size:21px;color:var(--primary);margin:0;font-weight:500}.dialog-heading .icon-button{color:var(--muted)}.search-dialog{width:620px;margin:15vh auto auto}.search-input-wrap{position:relative}.search-input-wrap input{width:100%;padding:12px 55px 12px 14px;border:2px solid var(--primary);border-radius:7px;color:var(--text);background:var(--card);outline:none}.search-shortcut{position:absolute;right:14px;top:15px;border:1px solid var(--border);padding:1px 4px;font-size:10px;color:var(--muted)}.search-results{max-height:50vh;overflow:auto;margin-top:18px}.search-hint{text-align:center;color:var(--muted);padding:25px}.search-result{display:block;padding:13px 8px;border-bottom:1px dashed var(--border)}.search-result:hover{color:var(--primary);background:var(--soft)}.search-result h3{font-size:17px;font-weight:500;margin:0 0 7px}.search-result p{font-size:13px;color:var(--muted);margin:0;line-height:1.5}.search-result mark{background:#ffecaf;color:#5d5544;border-radius:2px}.result-count{color:var(--muted);font-size:12px;margin-bottom:8px}.general-dialog{width:500px}.general-dialog p{line-height:1.8}.general-dialog .dialog-note{font-size:12px;color:var(--muted)}.field{display:block;margin:15px 0}.field span{display:block;margin-bottom:7px}.field input,.field textarea{width:100%;border:1px solid var(--border);background:var(--soft);color:var(--text);padding:12px;border-radius:6px;resize:vertical}.gradient-button{padding:9px 24px;background:linear-gradient(300deg,#74ebd5,#9face6);color:#fff;border-radius:7px;font-weight:600}.gradient-button:hover{transform:translateY(-2px)}.qr-preview{width:260px;max-height:60vh;object-fit:contain;margin:auto}.lightbox{width:min(1100px,90vw);padding:15px}.lightbox img{max-height:72vh;object-fit:contain;width:100%}.dialog-error{color:#e66;font-size:13px;min-height:20px}.drawer-shade{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:190}.mobile-drawer{position:fixed;inset:0 auto 0 0;width:300px;max-width:85vw;background:var(--card);padding:30px 24px;z-index:200;overflow:auto;box-shadow:var(--shadow)}.mobile-drawer>img{height:90px;width:90px;border-radius:50%;margin:15px auto;transition:transform .5s}.mobile-drawer h2{text-align:center;font-size:19px;font-weight:400}.mobile-drawer p{text-align:center;font-size:12px;color:var(--muted);margin-bottom:24px}.drawer-close{position:absolute;right:10px;top:10px}.mobile-drawer nav{display:grid;gap:5px}.mobile-drawer nav a,.mobile-drawer nav button{display:flex;gap:12px;align-items:center;padding:12px;text-align:left;font-size:16px}.mobile-drawer nav .icon{font-size:20px}.mobile-drawer nav a:hover,.mobile-drawer nav button:hover{background:var(--soft);color:var(--primary)}
.section-card{padding:32px;margin-bottom:15px}.section-card>h2{font-weight:400;font-size:25px;margin:0 0 24px}.section-card>p{line-height:1.9}.section-note{font-size:13px;color:var(--muted)}.timeline{border-left:2px solid #aadafa;margin:12px 0 0 13px;padding-left:27px}.timeline-year{position:relative;font-size:22px;font-weight:500;margin:24px 0 16px}.timeline-year:before,.timeline-entry:before{content:'';position:absolute;left:-35px;top:9px;width:13px;height:13px;background:var(--primary);border:3px solid var(--card);border-radius:50%}.timeline-entry{position:relative;margin:0 0 19px}.timeline-entry:before{width:10px;height:10px;left:-33px;top:8px;background:#aadafa}.timeline-entry time{font-size:12px;color:var(--muted);display:block;margin-bottom:5px}.timeline-entry a{font-size:16px}.timeline-entry a:hover{color:var(--primary)}.category-grid{display:grid;gap:14px;grid-template-columns:1fr 1fr}.category-tile{display:flex;align-items:center;justify-content:space-between;padding:24px 20px;border:1px solid var(--border);border-radius:8px;background:var(--soft);font-size:16px}.category-tile span{color:var(--primary);font-size:14px}.category-tile:hover{color:var(--primary);transform:translateY(-3px)}.tags-page{justify-content:center;gap:16px;padding:25px}.tags-page a{font-size:20px}.filter-heading{padding:15px 20px;display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;gap:10px}.filter-heading h2{margin:0;font-size:20px;font-weight:500}.filter-heading a{color:var(--primary);font-size:13px}.talk-card{padding:24px;margin-bottom:16px}.talk-author{display:flex;align-items:center;gap:10px}.talk-author img{width:42px;height:42px;border-radius:50%}.talk-author strong{font-size:15px;font-weight:500}.talk-author time{display:block;color:var(--muted);font-size:12px;margin-top:3px}.talk-card p{line-height:1.9;margin:20px 0}.talk-footer{display:flex;justify-content:space-between;border-top:1px solid var(--border);padding-top:14px;color:var(--muted);font-size:13px}.link-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.friend-link{display:flex;align-items:center;gap:16px;padding:20px;border-radius:7px;background:var(--soft)}.friend-logo{display:grid;place-items:center;background:#49b1f5;color:#fff;height:50px;width:50px;flex-shrink:0;border-radius:50%;font-family:Georgia,serif;font-size:25px}.friend-link b{font-weight:500;font-size:16px}.friend-link p{font-size:12px;color:var(--muted);margin:7px 0 0}.friend-link:hover{transform:translateY(-3px);color:var(--primary)}.message-form textarea{min-height:130px}.message-form .form-row{display:flex;gap:15px}.message-form .form-row .field{flex:1}.message-submit{display:flex;justify-content:space-between;align-items:center;gap:15px}.message-submit small{color:var(--muted)}.message-list{margin-top:30px}.message-item{border-top:1px dashed var(--border);padding:20px 0}.message-item strong{font-size:15px}.message-item time{font-size:12px;color:var(--muted);margin-left:10px}.message-item p{line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.about-avatar{width:100px;height:100px;border-radius:50%;margin:0 auto 20px}.about-title{text-align:center}.article-detail{line-height:1.9}.article-detail h2{font-size:25px;font-weight:500}.article-detail .article-intro{padding:20px;background:var(--soft);border-left:4px solid var(--primary);font-size:17px;margin:25px 0}.article-detail .source-link{display:inline-flex;align-items:center;gap:8px;color:var(--primary);padding:8px 0}.article-detail .post-tags{margin:22px 0;display:flex;flex-wrap:wrap;gap:8px}.post-tags a{padding:3px 10px;border:1px solid var(--primary);border-radius:15px;color:var(--primary);font-size:12px}.article-actions{display:flex;justify-content:space-between;gap:16px;align-items:center;border-top:1px dashed var(--border);padding-top:20px}.like-button{color:#f26c60;border:1px solid #f26c60;padding:6px 18px;border-radius:18px}.like-button.liked{color:#fff;background:#f26c60}.article-actions a{color:var(--primary)}.empty-state{text-align:center;padding:45px 25px;color:var(--muted)}.empty-state img{width:100px;height:100px;margin:0 auto 20px}
@keyframes move-forever{0%{transform:translate3d(-90px,0,0)}100%{transform:translate3d(85px,0,0)}}@keyframes hero-settle{from{transform:scale(1.08);opacity:.65}to{transform:scale(1);opacity:1}}@keyframes blink{to{visibility:hidden}}@keyframes arrow-bounce{0%,100%{transform:translate(-50%,0);opacity:.6}50%{transform:translate(-50%,8px);opacity:1}}@keyframes notice-enter{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes disc-spin{to{transform:rotate(360deg)}}@keyframes swing{0%,100%{transform:rotate(-10deg)}50%{transform:rotate(10deg)}}
@media(min-width:769px){.mobile-profile{display:none}}
@media(max-width:1100px) and (min-width:769px){.site-header{padding:0 15px;gap:8px}.desktop-nav>a,.desktop-nav>button,.more-button{padding:0 6px;gap:3px}.desktop-nav .icon{font-size:16px}.desktop-nav{font-size:13px}.layout{padding-right:15px;padding-left:15px}.info-card{padding:20px 16px}.article-info{padding:0 16px}.social-links{padding:14px 25px}}
@media(max-width:768px){.site-header{padding:0 10px;gap:12px}.desktop-nav,.site-header .brand{display:none}.mobile-menu{display:inline-grid}.mobile-search{display:block;margin-left:auto}.theme-toggle{width:40px}.hero h1{font-size:24px;line-height:36px}.typewriter{font-size:16px;padding:0 25px}.scroll-down{bottom:60px}.waves{height:6rem}.layout{display:block;padding:24px 8px 0}.sidebar{display:none}.mobile-profile{margin-bottom:15px}.mobile-profile .profile-cover{height:168px}.mobile-profile .profile-identity{padding-left:28px}.mobile-profile .profile-say{padding-left:28px}.mobile-profile .profile-stats{padding-left:70px;padding-right:70px}.mobile-profile .gitee-link{margin:0 56px}.mobile-profile .social-links{padding:14px 75px}.article-card,.article-card:nth-child(even){height:392px;flex-direction:column}.article-cover{height:196px;flex:none;width:100%}.article-cover img{width:185px;height:185px}.article-info{width:100%;padding:10px 21px;flex:1}.article-title{font-size:20px;line-height:2.3}.meta{font-size:12px;line-height:1.6}.meta .icon{font-size:12px}.article-summary{font-size:16px;line-height:2.7}.pagination{margin:30px 0;gap:7px}.mobile-site-info{padding:24px;margin-bottom:18px}.site-footer{height:145px;font-size:12px;padding:0 25px}.badges{gap:5px}.badges a{font-size:9px;line-height:18px}.back-top{right:25px;bottom:32px}.notifications{right:20px}.notification{width:168px;padding:15px 24px}.notification strong{font-size:16px}.notification p{font-size:14px}.search-dialog,.general-dialog{width:calc(100% - 24px);padding:20px;margin:60px auto auto;max-height:calc(100dvh - 80px)}.search-results{max-height:60vh}.section-card{padding:23px}.section-card>h2{font-size:22px}.hero.compact{height:300px}.hero.compact h1{font-size:26px;line-height:1.5}.category-grid,.link-grid{grid-template-columns:1fr}.category-tile{padding:20px}.message-form .form-row{display:block}.message-submit{align-items:flex-start;flex-direction:column}.message-submit .gradient-button{align-self:flex-end}.article-actions{flex-wrap:wrap}.timeline{padding-left:23px}.timeline-year:before{left:-31px}.timeline-entry:before{left:-29px}}
.desktop-nav [data-action=search] .icon{font-size:28px}.site-header .icon-button{color:inherit}.article-title{font-size:1.5rem}.meta{font-size:13px}
@media(max-width:1100px) and (min-width:769px){.desktop-nav .search-button .icon{font-size:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-image{opacity:1}}
.cycling-background{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:#c8e1d6;visibility:hidden}
.home-route .cycling-background{visibility:visible}
.cycling-background iframe{display:block;border:0;width:100%;height:100%}
.cycling-veil{position:absolute;inset:0;background:var(--page);opacity:var(--cycling-fade,0);will-change:opacity}
.home-route .layout,.home-route .site-footer{position:relative;z-index:1}
.hero:not(.compact){height:calc(100svh - 32px);background:transparent;color:#243f3b;z-index:1;overflow:visible}
.hero:not(.compact) .hero-image{display:none}
.hero:not(.compact) .hero-mask{background:transparent}
.hero:not(.compact) h1{top:24%;width:max-content;max-width:calc(100% - 32px);white-space:normal;text-align:center;text-shadow:none;opacity:var(--cycling-title-opacity,1);translate:0 var(--cycling-title-shift,0px)}
.hero:not(.compact) .typewriter{top:32%;text-shadow:none;min-height:26px;opacity:var(--cycling-title-opacity,1);translate:0 var(--cycling-title-shift,0px)}
.hero-aspiration{position:absolute;top:calc(32% + 30px);left:0;width:100%;margin:0;text-align:center;color:#466c62;font-family:'SimSun','Songti SC',serif;font-size:16px;letter-spacing:.1em;line-height:1.8;opacity:var(--cycling-title-opacity,1);translate:0 var(--cycling-title-shift,0px)}
.hero.compact .hero-aspiration{display:none}
.hero.compact{color:#243f3b;background:#c8e1d6}
.hero.compact .hero-mask{background:linear-gradient(180deg,rgba(237,243,229,.12),rgba(237,243,229,.22))}
.hero.compact h1{text-shadow:none}
.hero.compact .hero-image{object-position:center center}
.site-header:not(.cycling-cover):not(.scrolled){color:#243f3b}
.profile-say{height:auto;min-height:79px;padding:12px 16px 14px}
.profile-aspiration{display:block;margin-top:5px;font-size:12px;letter-spacing:.035em;color:var(--muted)}
@media(max-width:768px){.hero-aspiration{font-size:14px;top:calc(32% + 26px)}.profile-aspiration{font-size:13px}}
.hero:not(.compact) .scroll-down{color:#243f3b;opacity:var(--cycling-title-opacity,1)}
.hero:not(.compact) .waves{display:none}
.site-header.cycling-cover:not(.scrolled){color:#243f3b}
.contact-note{display:block;margin-top:5px;color:var(--muted);font-size:12px}
.mobile-source-note{display:none;margin:0;padding:0 16px 16px;text-align:center;color:var(--muted);font-size:12px;line-height:1.6}
@media(max-width:768px){.mobile-source-note{display:block}}
.contact-list{display:grid;gap:13px}
.contact-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;font-size:13px}
.contact-row code{grid-row:2;grid-column:1/-1}
.contact-row .copy-contact{grid-row:1;grid-column:2}
.contact-row code,.contact-dialog-value code{font:inherit;font-family:ui-monospace,Consolas,monospace;overflow-wrap:anywhere;color:var(--text)}
.copy-contact{padding:5px 8px;border:1px solid var(--border);border-radius:3px;color:var(--muted);font-size:12px}
.copy-contact:hover{border-color:var(--primary);color:var(--primary)}
.contact-dialog-value{text-align:center;margin:25px 0;font-size:18px}
.empty-state{max-width:700px;margin:0 auto;padding:52px 20px;text-align:center;color:var(--muted)}
.empty-state p{margin:10px 0 0;font-size:15px}
.empty-mark{display:grid;place-items:center;width:42px;height:42px;margin:auto;border:1px solid var(--border);border-radius:50%;color:#87a69b;font-size:20px}
.main-column>h2{margin:0 0 5px;font-size:22px;font-weight:500}
.scene-controls{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:18px;width:460px;max-width:calc(100% - 28px);min-height:64px;padding:7px 14px;border:1px solid rgba(36,63,59,.24);border-radius:6px;background:rgba(245,249,238,.94);color:#243f3b;box-shadow:0 3px 15px rgba(36,63,59,.08);backdrop-filter:blur(6px);z-index:3;opacity:var(--cycling-title-opacity,1)}
.hero:not(.compact) .scroll-down[inert],.scene-controls[inert]{visibility:hidden}
.scene-control{display:grid;place-items:center;flex:none;width:36px;height:36px;font-size:21px;padding:0;border:1px solid #b6ccc0;border-radius:4px}
.scene-control:hover{background:rgba(36,63,59,.09)}
.scene-control .icon{font-size:19px}
.scene-speed-control{flex:1;min-width:0}
.scene-speed-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;line-height:16px}
.scene-speed-heading output{width:54px;color:#2c715e;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;text-align:right}
.scene-controls input{appearance:none;display:block;width:100%;height:6px;margin:6px 0;border-radius:3px;background:linear-gradient(to right,#458675 var(--speed-progress,27.27%),#cbd9ce var(--speed-progress,27.27%));cursor:pointer}
.scene-controls input::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border:3px solid #f5f9ee;border-radius:50%;background:#34715e;box-shadow:0 0 0 1px #34715e}
.scene-controls input::-moz-range-thumb{width:10px;height:10px;border:3px solid #f5f9ee;border-radius:50%;background:#34715e;box-shadow:0 0 0 1px #34715e}
.scene-speed-presets{display:flex;justify-content:space-between;align-items:center;min-height:16px}
.scene-speed-presets button{padding:0 3px;font-size:10px;line-height:16px;color:#738879;border-bottom:1px solid transparent}
.scene-speed-presets button[aria-pressed=true]{color:#2c715e;border-color:#458675}
.scene-speed-presets button:hover{color:#243f3b}
.scene-weather-control{flex:none;display:flex;align-items:center;padding:3px;border:1px solid #c5d6c9;border-radius:4px;gap:2px}
.scene-weather-control button{display:flex;align-items:center;justify-content:center;gap:5px;width:58px;height:32px;padding:0;font-size:12px;border-radius:3px;color:#718479}
.scene-weather-control button span{font-size:17px;line-height:1}
.scene-weather-control button[aria-pressed=true]{color:#243f3b;background:#dde9d9}
.scene-weather-control button:hover{color:#243f3b;background:#e6eedf}
.hero.compact .scene-controls{display:none}
@media(max-width:600px){.scene-controls{width:340px;bottom:14px;display:grid;grid-template-columns:36px minmax(0,1fr);gap:6px 14px;padding:7px 12px}.scene-weather-control{grid-column:1/-1;justify-self:center}.scene-weather-control button{width:90px;height:28px}.hero:not(.compact) .scroll-down{bottom:126px}}
@media(prefers-reduced-motion:reduce){.hero:not(.compact) h1,.hero:not(.compact) .typewriter,.hero-aspiration{translate:none}}

.music-launcher,.music-panel{--music-paper:#f7f5e9;--music-ink:#365e51;--music-muted:#7d9280;--music-line:#d5dfcd;--music-soft:#eaf0df;--music-sun:#f3cf88;color:var(--music-ink);background:var(--music-paper);border:1px solid var(--music-line);box-shadow:0 8px 28px rgba(51,88,70,.1)}
.music-launcher{position:fixed;left:24px;bottom:24px;z-index:120;display:flex;align-items:center;gap:10px;height:48px;padding:5px 16px 5px 6px;border-radius:30px;font-family:'SimSun','Songti SC',serif;font-size:14px;letter-spacing:.03em;transition:transform .25s,box-shadow .25s}
.music-launcher:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(51,88,70,.16)}
.music-launcher[aria-expanded=true]{background:#eaf0df}
.music-launcher-mark{display:grid;place-items:center;position:relative;width:35px;height:35px;border-radius:50%;background:var(--music-soft)}
.music-launcher-mark>svg{width:21px;height:21px}
.music-launcher-dot{width:5px;height:5px;border-radius:50%;background:#aac0a7;margin-left:3px}
.music-launcher.playing .music-launcher-dot{background:#d5a55b}
.music-equalizer{display:none;gap:3px;align-items:center;justify-content:center;height:21px}
.music-equalizer i{width:2px;height:14px;border-radius:3px;background:currentColor;animation:music-wave 1.3s ease-in-out infinite}
.music-equalizer i:nth-child(2){height:20px;animation-delay:-.4s}.music-equalizer i:nth-child(3){height:10px;animation-delay:-.8s}
.music-launcher.playing .music-equalizer{display:flex}.music-launcher.playing .music-launcher-mark>svg{display:none}
.music-panel{position:fixed;left:24px;bottom:86px;z-index:150;width:336px;max-height:calc(100dvh - 110px);overflow:auto;border-radius:18px;padding:0 18px 15px;background-image:radial-gradient(rgba(57,101,77,.045) .6px,transparent .6px);background-size:6px 6px}
.music-header{display:flex;align-items:center;justify-content:space-between;min-height:49px;font-family:'SimSun','Songti SC',serif;font-size:15px;letter-spacing:.05em}
.music-icon-button{display:grid;place-items:center;width:32px;height:32px;padding:0;font-size:22px;color:var(--music-muted);border-radius:50%;line-height:1}
.music-icon-button:hover{background:var(--music-soft);color:var(--music-ink)}
.music-artwork{position:relative;height:116px;border-radius:9px;overflow:hidden;background:#c8e1d6}
.music-artwork img{width:100%;height:100%;object-fit:cover;object-position:center 67%}
.music-artwork>span{position:absolute;left:13px;top:12px;font-family:'SimSun','Songti SC',serif;font-size:11px;letter-spacing:.1em;color:#466c62}
.music-info{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:17px 1px 13px}
.music-info strong{font-family:'SimSun','Songti SC',serif;font-size:20px;font-weight:400;letter-spacing:.08em}
.music-info p{margin:6px 0 0;color:var(--music-muted);font-size:10px;line-height:1.6}
.music-status{color:var(--music-muted);font-size:10px;white-space:nowrap;padding:5px 8px;border:1px solid var(--music-line);border-radius:16px}
.music-panel.playing .music-status{color:var(--music-ink);background:var(--music-soft)}
.music-progress{display:flex;align-items:center;gap:9px;font-size:10px;font-variant-numeric:tabular-nums;color:var(--music-muted);min-height:25px}
.music-panel input[type=range]{appearance:none;height:4px;margin:0;border-radius:4px;background:var(--music-line);accent-color:var(--music-ink)}
.music-panel input[type=range]::-webkit-slider-thumb{appearance:none;width:10px;height:10px;background:var(--music-ink);border:2px solid var(--music-paper);border-radius:50%;box-shadow:0 0 0 1px var(--music-ink)}
.music-panel input[type=range]::-moz-range-thumb{width:7px;height:7px;background:var(--music-ink);border:2px solid var(--music-paper);border-radius:50%;box-shadow:0 0 0 1px var(--music-ink)}
.music-progress input{flex:1;width:0}.music-progress input:disabled{opacity:.5;cursor:wait}
.music-controls{display:flex;align-items:center;justify-content:center;gap:30px;padding:13px 0 16px}
.music-skip{display:grid;place-items:center;width:36px;height:36px;padding:4px;color:var(--music-muted);border-radius:50%}.music-skip:hover{background:var(--music-soft);color:var(--music-ink)}
.music-skip svg{width:26px;height:26px}.music-skip svg text{font-family:Georgia,serif;font-size:10px;fill:currentColor}
.music-controls .play-toggle{display:grid;place-items:center;width:50px;height:50px;padding:0;border:1px solid #e4bf79;border-radius:50%;background:var(--music-sun);color:#4c6047;box-shadow:0 3px 9px rgba(189,158,88,.14)}
.music-controls .play-toggle:hover{transform:scale(1.04);background:#f6d89b}.play-toggle svg{width:22px;height:22px}
.music-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--music-line);padding-top:11px}
.music-loop{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:5px;color:var(--music-muted);font-size:10px}.music-loop.active{color:var(--music-ink);background:var(--music-soft)}
.music-loop svg{width:17px;height:17px}.music-volume{display:flex;align-items:center;gap:7px;color:var(--music-muted)}.music-volume svg{width:17px;height:17px}.music-volume input{width:77px}.music-volume output{min-width:27px;font-size:10px;font-variant-numeric:tabular-nums}
.dark .music-launcher,.dark .music-panel{--music-paper:#30443a;--music-ink:#d5e4ce;--music-muted:#adc0a6;--music-line:#516859;--music-soft:#3d5446;box-shadow:0 8px 28px rgba(0,0,0,.2)}
.dark .music-launcher[aria-expanded=true]{background:var(--music-soft)}
@keyframes music-wave{0%,100%{transform:scaleY(.5)}50%{transform:scaleY(1)}}
@media(max-width:768px){.music-launcher{left:14px;bottom:14px;height:44px;font-size:13px}.music-launcher-mark{width:32px;height:32px}.music-panel{left:14px;bottom:70px;width:min(336px,calc(100vw - 28px));max-height:calc(100dvh - 94px)}}
@media(max-width:600px){.home-route .music-launcher{top:60px;bottom:auto;height:40px}.home-route .music-panel{top:110px;bottom:auto;max-height:calc(100dvh - 126px)}}
@media(max-width:600px) and (max-height:620px){.home-route .music-launcher{width:40px;padding:3px}.home-route .music-launcher>span:nth-child(2),.home-route .music-launcher-dot{display:none}}
@media(max-width:600px) and (max-height:620px){.hero:not(.compact) h1{top:21%}.hero:not(.compact) .typewriter{top:28%}.hero-aspiration{top:calc(28% + 20px)}}
