/* Shared site shell. Page-specific layouts must not redefine these components. */
.hub-root{--ink:#20343d;--muted:#68777d;--line:#dfe6e7;--teal:#007b80;--paper:#fff;--bg:#f8faf9;--soft:#edf5f4;--hub-width:1280px;--hub-gutter:28px;scrollbar-gutter:stable}
.hub-root body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.8 system-ui,-apple-system,"Microsoft YaHei",sans-serif}
.hub-root a{text-underline-offset:4px}
.hub-root body button,.hub-root body input,.hub-root body select,.hub-root body textarea{font-family:inherit}
.hub-root body :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #d89b42;outline-offset:3px}
.hub-root .hub-header{display:block;position:relative;background:#fff;border:0;border-bottom:1px solid var(--line);margin:0;padding:0;color:var(--ink)}
.hub-root .hub-header .hub-nav{display:flex;align-items:center;gap:32px;justify-content:space-between;max-width:var(--hub-width);margin:0 auto;padding:18px var(--hub-gutter);min-height:76px;box-sizing:border-box}
.hub-root .hub-header a.hub-brand{display:block;color:var(--ink);font:750 20px/1.4 system-ui,-apple-system,"Microsoft YaHei",sans-serif;letter-spacing:0;text-decoration:none;white-space:nowrap;margin:0;padding:0;background:none;border:0;box-shadow:none}
.hub-root .hub-header nav.hub-links{display:flex;align-items:center;justify-content:flex-end;gap:26px;width:auto;max-width:none;margin:0;padding:0;flex-wrap:wrap;border:0;background:none}
.hub-root .hub-header .hub-links a{display:block;font:600 14px/1.6 system-ui,-apple-system,"Microsoft YaHei",sans-serif;color:var(--muted);text-decoration:none;margin:0;padding:7px 0;background:none;border:0;border-bottom:2px solid transparent;border-radius:0;box-shadow:none;letter-spacing:0}
.hub-root .hub-header .hub-links a:hover,.hub-root .hub-header .hub-links a[aria-current=page]{color:var(--teal);border-bottom-color:var(--teal)}
.hub-root body>main{width:100%;max-width:var(--hub-width);margin:0 auto;padding:34px var(--hub-gutter) 64px;box-sizing:border-box}
.hub-root body.article-page>main{max-width:1080px}
.hub-root main>h1,.hub-root main>.hero h1,.hub-root .blog-heading h1,.hub-root .article-page h1{font-size:32px;line-height:1.4;letter-spacing:-.025em}
.hub-root .blog-heading{margin-bottom:26px}
.hub-root .blog-grid{gap:64px;grid-template-columns:minmax(0,1fr) 240px}
.hub-root .post-card{grid-template-columns:minmax(0,1fr) 156px}
.hub-root .post-thumb img{height:156px}
.hub-root :is(.site-footer,.blog-foot){box-sizing:border-box;max-width:var(--hub-width);margin:0 auto;border-top:1px solid var(--line);padding:24px var(--hub-gutter) 36px;font:13px/1.8 system-ui,-apple-system,"Microsoft YaHei",sans-serif;color:var(--muted);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.hub-root :is(.site-footer,.blog-foot) a{color:var(--muted)}
.hub-root .button,.hub-root button.primary{border-radius:7px;background:var(--teal);border-color:var(--teal);color:#fff}
.hub-root .button.secondary{background:#fff;color:var(--teal);border-color:#adcdd0}
.hub-root .breadcrumb{font-size:13px;color:var(--muted)}
.hub-root .skip-link{position:absolute;left:16px;top:-100px;z-index:9999;padding:10px 18px;background:#fff;color:var(--teal);border:2px solid var(--teal)}
.hub-root .skip-link:focus{top:8px}
@media(max-width:800px){.hub-root{--hub-gutter:20px}.hub-root .hub-header .hub-nav{gap:16px;flex-wrap:wrap;padding-top:14px;padding-bottom:12px}.hub-root .hub-header nav.hub-links{gap:22px}.hub-root .blog-grid{grid-template-columns:1fr;gap:24px}}
@media(max-width:560px){.hub-root{--hub-gutter:18px}.hub-root .hub-header .hub-nav{gap:9px}.hub-root .hub-header a.hub-brand{width:100%;font-size:19px}.hub-root .hub-header nav.hub-links{width:100%;justify-content:flex-start;gap:20px}.hub-root .hub-header .hub-links a{font-size:13px;padding:5px 0}.hub-root body>main{padding-top:26px;padding-bottom:44px}.hub-root main>h1,.hub-root main>.hero h1,.hub-root .blog-heading h1,.hub-root .article-page h1{font-size:28px}.hub-root .post-card{grid-template-columns:minmax(0,1fr) 82px;gap:15px}.hub-root .post-thumb img{height:82px}}
@media(prefers-reduced-motion:reduce){.hub-root{scroll-behavior:auto}}
@media(max-width:560px){.hub-root .edit-toolbar button{white-space:nowrap;font-size:13px;min-width:0;padding:9px 10px}.hub-root .edit-toolbar{gap:8px}}
