/* RUOYE_DESK_BLOG_V1 */
body.blog-page {
  --site-bg:var(--desk-bg); --site-surface:var(--desk-paper); --site-surface-muted:var(--desk-mint);
  --site-ink:var(--desk-ink); --site-ink-secondary:var(--desk-muted); --site-ink-tertiary:#6d827a;
  --site-line:var(--desk-line); --site-line-strong:#b4c8bd; --site-accent:var(--desk-green);
  --site-accent-soft:var(--desk-mint); --site-violet:var(--desk-green); --site-coral:var(--desk-orange);
  --site-font-sans:var(--desk-font); --site-font-display:var(--desk-font); --site-shadow-card:var(--desk-shadow);
  --site-radius-sm:10px; --site-radius-md:20px; --site-radius-lg:28px;
  background:radial-gradient(ellipse at 65% 0,#fffaf0 0,transparent 650px),var(--desk-bg);
  font-family:var(--desk-font); font-size:16px; line-height:1.75;
}
.blog-page::before,.blog-page::after,.blog-grid,.blog-spectrum,.blog-cursor,.blog-particle-field{display:none!important}
.blog-page a,.blog-page button,.blog-page summary{cursor:pointer!important}.blog-page input{cursor:text!important}
.blog-page [hidden]{display:none!important}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--desk-orange);outline-offset:4px}
.blog-frame{width:min(1200px,calc(100% - 80px))}.blog-header{min-height:96px;border-color:var(--desk-line)}
.blog-brand{gap:15px}.brand-mark{width:42px;height:auto;display:block;border:0;background:none;font:800 42px/.9 var(--desk-font);letter-spacing:-6px;text-transform:lowercase;box-shadow:none;color:var(--desk-ink)}
.brand-mark span{color:#e57d50}.blog-brand:hover .brand-mark,.blog-brand:focus-visible .brand-mark{transform:none;color:var(--desk-ink);background:none}
.brand-copy strong{font:700 13px var(--desk-font);letter-spacing:1px}.brand-copy small{font:12px var(--desk-font);letter-spacing:.5px}
.blog-nav,.blog-parent{font:14px var(--desk-font);letter-spacing:0;text-transform:none}.blog-nav{gap:28px}.blog-parent{color:var(--desk-green)}
.blog-hero{grid-template-columns:1.2fr .8fr;gap:48px;min-height:360px;padding:52px 0 46px}
.eyebrow{font:12px var(--site-font-mono);letter-spacing:1.2px;color:var(--desk-orange)}.eyebrow>span{width:7px;height:7px;border-radius:50%;background:#e5ad7c}
.blog-hero h1,.listing-header h1,.not-found h1{font:650 clamp(34px,4vw,54px)/1.4 var(--desk-font);letter-spacing:1px;margin:18px 0}
.blog-hero-copy>p:not(.eyebrow){max-width:510px;font-size:16px;line-height:1.9}.blog-hero .hero-actions{margin-top:26px;gap:12px}
.button{border-radius:12px;min-height:46px;padding:0 20px;font:14px var(--desk-font);letter-spacing:0;border-color:#bccfc3;background:var(--desk-paper);box-shadow:0 3px 0 #d4e2d8}
.button-primary{color:#fffdf7;background:var(--desk-green);border-color:var(--desk-green);box-shadow:0 3px 0 #30594f}.button-primary span{color:#f6dfb2}.button-primary:hover{background:#365f55;border-color:#365f55}.button-quiet:hover{background:var(--desk-peach);border-color:#dcb68c}
.desk-books{position:relative;width:320px;height:240px;justify-self:center;perspective:800px;pointer-events:none}.desk-books::after{content:'';position:absolute;left:15px;right:4px;bottom:22px;height:36px;border-radius:50%;background:#365e4e12;filter:blur(9px)}
.desk-book{position:absolute;width:260px;height:48px;left:25px;border-radius:7px 12px 12px 7px;transform:rotate(-8deg) skewY(2deg);box-shadow:4px 8px 0 #345b5520;z-index:1;background:#95b8ce;border-left:12px solid #6c97b2}
.desk-book::after{content:'';position:absolute;inset:9px 4px 7px 6px;border-radius:0 5px 5px 0;background:repeating-linear-gradient(#fff8e8 0 3px,#dfd4bb 3px 4px)}
.desk-book:nth-child(1){bottom:51px;left:31px}.desk-book:nth-child(2){bottom:100px;left:43px;background:#e4aa7c;border-color:#c68f62;transform:rotate(-2deg)}
.desk-book:nth-child(3){bottom:144px;height:65px;background:#7fa78c;border-color:#638971;transform:rotate(-9deg)}.desk-book:nth-child(3)::after{inset:auto 4px 6px 6px;height:12px}.desk-book b{display:block;padding:10px 0 0;text-align:center;color:#fff8df;font-size:25px;letter-spacing:4px;font-weight:600}
.desk-bookmark{position:absolute;left:190px;top:74px;width:20px;height:81px;background:#ecc678;transform:rotate(-9deg);z-index:2;clip-path:polygon(0 0,100% 0,100% 100%,50% 87%,0 100%)}
.blog-stats{gap:16px;border:0;margin:6px 0 15px;font-size:13px;letter-spacing:0;text-transform:none}.blog-stats>div{min-height:118px;border:1px solid var(--desk-line);border-radius:18px;background:var(--desk-paper);box-shadow:var(--desk-shadow);padding:17px 20px;gap:5px}.blog-stats>div:last-child{border-right:1px solid var(--desk-line)}
.blog-stats strong{color:var(--desk-ink);font:600 27px var(--desk-font);letter-spacing:0}.blog-stats small{font-size:12px}.blog-stats>div:nth-child(2){background:#e4eee4}.blog-stats>div:nth-child(4){background:#faeada}
.blog-content{grid-template-columns:210px minmax(0,1fr);gap:42px;padding:58px 0 75px}.blog-sidebar{gap:26px}.sidebar-block{border:0;padding:18px;border-radius:16px;background:#e3ece680}.sidebar-block p{font:14px/1.85 var(--desk-font)}
.sidebar-label,.section-label{font:600 13px var(--desk-font);letter-spacing:.5px;text-transform:none}.topic-list{gap:7px}.topic-chip{border-radius:8px;padding:6px 9px;font:12px var(--desk-font);letter-spacing:0;text-transform:none;background:var(--desk-paper)}.topic-chip.is-active,.topic-chip:hover{background:#d5e6d9;border-color:#9abcaa}
.sidebar-search label,.search-page-input{padding:11px 12px;border:1px solid #c6d7ca;border-radius:11px;background:var(--desk-paper)}.sidebar-search input,.search-page-input input{font:14px var(--desk-font)}
.section-heading{font:13px var(--desk-font);letter-spacing:0;text-transform:none;padding-bottom:16px}.result-count{font-size:12px}.featured-grid .post-list{gap:18px;padding:20px 0 48px}
.post-card,.post-card:nth-child(1),.post-card:nth-child(3),.listing-layout .post-card:nth-child(1),.listing-layout .post-card:nth-child(3){background:var(--desk-paper);color:var(--desk-ink);border:1px solid var(--desk-line);border-left:5px solid #9fbba6;border-radius:18px;padding:23px;min-height:285px;box-shadow:var(--desk-shadow)}
.post-card:nth-child(3n+2){border-left-color:#e3b78a}.post-card:nth-child(3n){border-left-color:#a2bfce}
.post-card h3{font:600 21px/1.6 var(--desk-font);letter-spacing:0;margin:22px 0 13px}.post-card p,.post-card:nth-child(1) p{font-size:15px;line-height:1.85;color:var(--desk-muted)}
.post-card-top,.post-card-bottom,.post-card:nth-child(1) .post-card-top,.post-card:nth-child(1) .post-card-bottom{color:var(--desk-muted);font:12px var(--desk-font);letter-spacing:0;text-transform:none}.post-card-bottom{margin-top:auto;padding-top:16px;border-color:var(--desk-line);gap:10px}.post-card p{margin-bottom:22px}
.post-tags{font:11px var(--desk-font);letter-spacing:0;text-transform:none}.post-tags a,.post-tags span{border:0;border-radius:5px;background:#e7eee8;color:#45685b;padding:4px 7px;opacity:1}.post-open,.post-card:nth-child(1) .post-open{font-size:13px;color:var(--desk-green)}
.archive-list{background:var(--desk-paper);padding:6px 18px;border:1px solid var(--desk-line);border-radius:18px;margin-top:18px;box-shadow:var(--desk-shadow)}
.archive-row{grid-template-columns:25px minmax(0,1fr) 100px 85px 20px;font:12px var(--desk-font);letter-spacing:0;text-transform:none;min-height:66px}.archive-row strong{font:15px/1.7 var(--desk-font)}.archive-row time{font-size:12px}.archive-row:hover{background:#eaf1e8;border-radius:7px}.archive-tags{font-size:11px}
.blog-footer{font:12px var(--desk-font);letter-spacing:0;min-height:90px}.blog-footer span:nth-child(2){font-size:12px}
.article-page{padding:42px 0 72px}.article-header h1{font:650 clamp(28px,3.8vw,47px)/1.5 var(--desk-font);letter-spacing:0;margin:30px 0 23px}.article-kicker{font:12px var(--desk-font);letter-spacing:.3px}.article-tags a{font:12px var(--desk-font);border-radius:7px;padding:6px 9px;background:var(--desk-paper);letter-spacing:0;text-transform:none}
.article-layout{grid-template-columns:210px minmax(0,790px);gap:32px;margin-top:32px}.article-aside{padding:19px;background:#e0ebe2;border:1px solid #cbdccf;border-radius:17px}.article-aside .sidebar-label{font-size:13px}.article-aside .article-toc-list-link{font:13px/1.65 var(--desk-font);letter-spacing:0;padding:5px 0}.article-toc-list-level-2>.article-toc-list-link{font-size:14px}.article-toc-count,.article-back-link{font-size:12px!important}
.article-body{padding:24px 30px;background:var(--desk-paper);border:1px solid var(--desk-line);border-radius:22px;box-shadow:var(--desk-shadow);font:17px/1.65 var(--desk-font)}.article-body h1,.article-body h2,.article-body h3,.article-body h4{font-family:var(--desk-font);font-weight:650;letter-spacing:0;line-height:1.55}.article-body h2{font-size:26px}.article-body h3{font-size:22px}.article-body h4{font-size:19px}.article-body blockquote{font:16px/1.65 var(--desk-font);background:#e7efe5;border-radius:0 12px 12px 0;padding:10px 16px}.article-body blockquote p:last-child{margin-bottom:0}.article-body pre,.article-body .code-block{border-radius:12px}.article-body pre{font-size:14px}.article-body img{border-radius:10px}.article-body code:not(pre code){background:#e8efe6;color:#355e51;border-radius:4px}.code-copy{font-size:12px;border-radius:7px;letter-spacing:0}.article-pagination{margin-top:35px;gap:20px}.article-pagination a{border-radius:16px;background:var(--desk-paper);padding:20px}.article-pagination small{font-size:12px}.article-pagination strong{font:16px/1.6 var(--desk-font);letter-spacing:0;white-space:normal}
.listing-page{padding:48px 0 80px}.listing-header{padding-bottom:34px}.listing-header>p:last-child{max-width:650px;font-size:16px}.listing-layout{grid-template-columns:200px minmax(0,800px);gap:35px}.listing-aside{font-size:14px;letter-spacing:0;text-transform:none}.listing-layout .post-list{gap:18px}.listing-layout .post-card{min-height:220px}.tag-cloud{gap:18px}.tag-cloud a,.search-result{border-radius:17px;background:var(--desk-paper);box-shadow:var(--desk-shadow);padding:23px}.tag-cloud strong{font:600 21px var(--desk-font);letter-spacing:0}.tag-cloud span{font-size:13px}.search-result-copy strong{font:600 20px/1.6 var(--desk-font);letter-spacing:0}.search-result-copy small{font-size:14px}.search-result-meta{font-size:12px}.not-found{min-height:500px}
@media(max-width:950px){.blog-frame{width:calc(100% - 48px)}.blog-hero{grid-template-columns:1fr .7fr;gap:15px}.desk-books{transform:scale(.8);transform-origin:center;width:270px}.blog-content{grid-template-columns:180px minmax(0,1fr);gap:24px}.featured-grid .post-list{grid-template-columns:1fr}.archive-tags{display:none}.archive-row{grid-template-columns:22px minmax(0,1fr) 85px 20px}.article-layout{grid-template-columns:180px minmax(0,1fr);gap:22px}.article-body{padding:22px 24px}.listing-layout{gap:22px}}
@media(max-width:650px){.blog-frame{width:calc(100% - 32px)}.blog-header{min-height:80px}.brand-copy small{display:none}.blog-nav{gap:13px;font-size:13px}.blog-nav a:nth-child(2){display:block}.blog-parent{font-size:12px}.brand-mark{font-size:36px;width:32px}.brand-copy strong{font-size:11px}.blog-brand{gap:9px}.blog-hero{display:block;padding:35px 0 25px}.blog-hero h1{font-size:34px}.desk-books{height:165px;margin:3px auto -10px;transform:scale(.64);transform-origin:center bottom}.blog-stats{grid-template-columns:1fr 1fr;gap:12px}.blog-stats>div{padding:14px;min-height:110px}.blog-stats strong{font-size:23px}.blog-content{display:block;padding:36px 0 55px}.blog-sidebar{display:block;margin-bottom:25px}.sidebar-block{margin-bottom:16px;padding:16px}.topic-list{max-height:155px;overflow:auto}.section-heading{flex-direction:row;align-items:center;gap:10px}.post-card h3{font-size:20px}.post-card{min-height:240px}.archive-list{padding:5px 10px}.archive-row{grid-template-columns:18px minmax(0,1fr) 72px 14px;gap:7px}.archive-row strong{white-space:normal;font-size:14px}.archive-row time{font-size:11px}.archive-index{font-size:11px}.article-layout,.listing-layout{display:block}.article-header h1{font-size:29px}.article-kicker{flex-wrap:wrap;gap:12px}.article-aside{margin-bottom:20px}.article-body{font-size:16px;padding:18px 16px}.article-body h2{font-size:24px}.article-body pre{font-size:13px}.article-pagination{grid-template-columns:1fr}.article-page,.listing-page{padding-top:32px}.search-result{grid-template-columns:1fr;gap:12px;padding:18px}.search-result-copy strong{font-size:18px}.tag-cloud{gap:12px}.tag-cloud a{padding:17px}.blog-footer{display:flex;gap:13px;padding:25px 0}.listing-header h1{font-size:34px}.button{font-size:14px}}
.blog-page .button-primary{color:#fffdf7}.blog-stats>div:nth-child(n+3) strong{font-size:clamp(18px,2vw,24px);white-space:nowrap}
.article-body>:first-child{margin-top:0}.listing-header h1 em{font-style:normal;color:var(--desk-green)}

/* Markdown reading rhythm. */
.article-body p { margin: 0 0 .75em; }
.article-body :is(h1,h2,h3,h4,h5,h6) { margin: 1.35em 0 .45em; line-height: 1.4; }
.article-body :is(h1,h2,h3,h4,h5) + :is(h2,h3,h4,h5,h6) { margin-top: .65em; }
.article-body blockquote { margin: .85em 0; }
.article-body :is(ul,ol) { margin: .55em 0 .8em; padding-left: 1.45em; }
.article-body li { margin: .18em 0; }
.article-body li > p { margin: .25em 0; }
.article-body li > :is(ul,ol) { margin: .25em 0; }
.article-body img { margin: 1em auto; }
.article-body :is(pre,.code-block,figure.highlight) { margin: 1em 0; }
.article-body pre { padding: 16px 18px; line-height: 1.55; }
.article-body pre.astro-code .line { min-height: 1.55em; }
.article-body .code-block pre.astro-code { padding: 16px 18px 16px 54px; }
.article-body figure.highlight pre { padding: 16px 18px; }
.article-body table { margin: 1em 0; line-height: 1.6; }
.article-body th,.article-body td { padding: 7px 10px; }
.article-body hr { margin: 1.5em 0; }
.article-body > :last-child { margin-bottom: 0; }
