/* Hugo Rackora 的配色、排版与响应式样式。 */
    :root{color-scheme:light;--ink:#171a18;--ink-soft:#414643;--muted:#686e6a;--paper:#f4f6f4;--surface:#fff;--line:#e1e5e2;--line-strong:#c8ceca;--accent:#08775b;--accent-hover:#065c46;--accent-soft:#deebe6;--shadow:0 14px 34px rgba(19,39,30,.045);--font:ui-sans-serif,system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;--serif:"Noto Serif SC","Songti SC",Georgia,serif}
    html[data-theme="dark"]{color-scheme:dark;--ink:#edf0ee;--ink-soft:#c2c7c4;--muted:#969c98;--paper:#111312;--surface:#181b19;--line:#2b302d;--line-strong:#454b47;--accent:#7ad7af;--accent-hover:#a3e8c6;--accent-soft:#1e3830;--shadow:0 14px 34px rgba(0,0,0,.16)}
    *,*::before,*::after{box-sizing:border-box}
    [hidden]{display:none!important}
    html{scroll-behavior:smooth;scroll-padding-top:100px}
    body{margin:0;min-height:100vh;color:var(--ink);background:var(--paper);font:16px/1.7 var(--font)}
    body::before{position:fixed;z-index:-1;inset:0;content:"";background:radial-gradient(ellipse 110% 65% at 50% -5%,rgba(8,119,91,.055),transparent 62%);pointer-events:none}
    a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}
    button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
    svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
    .shell{width:min(100% - 48px,1396px);margin-inline:auto}
    .skip{position:absolute;left:16px;top:-70px;z-index:50;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:7px}.skip:focus{top:10px}
    .site-header{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(14px)}
    .header-inner{min-height:70px;display:flex;align-items:center;gap:24px}
    .brand{display:inline-flex;align-items:center;gap:12px;white-space:nowrap;color:var(--ink);font-size:17px}.brand:hover{color:var(--ink)}
    .brand-mark,.profile-mark{display:grid;place-items:center;flex:none;width:39px;height:39px;border-radius:9px;background:#10231c;color:#fff;font:bold 27px/1 var(--font);letter-spacing:-4px;padding-right:4px;position:relative}.brand-mark::after,.profile-mark::after{content:"";position:absolute;width:15px;height:5px;background:#0d9b70;right:3px;bottom:8px;transform:rotate(35deg);border-radius:2px}
    .nav{display:flex;gap:6px;margin-left:auto;align-items:center}.nav a{color:var(--ink-soft);padding:8px 12px;border-radius:6px;font-size:15px}.nav a:hover,.nav a[aria-current="page"]{color:var(--accent);background:var(--accent-soft)}
    .header-actions{display:flex;gap:5px;margin-left:70px}.icon-button{width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:7px;color:var(--ink-soft);background:transparent}.icon-button:hover{background:var(--accent-soft);color:var(--accent)}.menu-button{display:none}
    .site-main{min-height:calc(100vh - 166px)}
    .home-layout{display:grid;grid-template-columns:minmax(0,1fr) 382px;grid-template-rows:auto 1fr;gap:50px 54px;padding-top:63px;padding-bottom:90px}
    .home-heading{grid-column:1;border-bottom:1px solid var(--line);padding-bottom:25px}.eyebrow{margin:0 0 4px;font:18px/1.5 var(--serif);letter-spacing:.21em;color:var(--muted)}
    .home-heading h1,.page-heading h1{font:600 clamp(40px,4vw,55px)/1.18 var(--serif);letter-spacing:-.045em;margin:0 0 12px}.home-heading .subtitle{color:var(--ink-soft);margin:0 0 15px}.home-meta{display:flex;gap:22px;color:var(--muted);font-size:13px}
    .home-content{grid-column:1;min-width:0}.home-aside{grid-column:2;grid-row:1/span 2;display:flex;flex-direction:column;gap:16px;min-width:0}
    .section-title{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin:0 0 15px}.section-title h2{font-size:21px;line-height:1.3;margin:0}.section-title a{font-size:14px;font-weight:600}
    .post-list{display:grid;gap:14px;list-style:none;padding:0;margin:0}.post-card,.panel,.archive-list,.about-card{background:var(--surface);border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow)}
    .post-card{padding:20px 23px 22px;transition:border-color .18s,transform .18s,box-shadow .18s}.post-card:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:0 16px 32px rgba(19,39,30,.075)}
    .card-eyebrow{display:flex;align-items:center;gap:16px;color:var(--muted);font-size:13px}.card-eyebrow a{font-weight:600}.post-card h3{font-size:21px;line-height:1.4;margin:8px 0 12px}.post-card h3 a{color:var(--ink)}.post-card h3 a:hover{color:var(--accent)}.post-card p{margin:0 0 15px;color:var(--ink-soft);line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;gap:16px;color:var(--muted);font-size:12px}
    .panel{padding:18px}.profile-top{display:flex;gap:17px;align-items:center}.profile-mark{width:71px;height:71px;font-size:48px;border-radius:13px;letter-spacing:-7px;padding-right:7px}.profile-mark::after{width:26px;height:8px;right:3px;bottom:14px}.profile-top h2{font-size:17px;line-height:1.25;margin:0 0 3px}.profile-top p{margin:0;color:var(--muted);font-size:13px}.profile-stats{display:grid;grid-template-columns:repeat(2,1fr);margin-top:16px;padding-top:13px;border-top:1px solid var(--line)}.profile-stats div{text-align:center}.profile-stats div+div{border-left:1px solid var(--line)}.profile-stats small{display:block;color:var(--muted);font-size:12px}.profile-stats strong{font-size:16px}
    .panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 11px}.panel-head h2{font-size:17px;margin:0}.panel-head a{font-size:13px}.category-list{list-style:none;padding:0;margin:0}.category-list li+li{border-top:1px solid var(--line)}.category-list a{display:flex;justify-content:space-between;align-items:center;padding:10px 0;color:var(--ink-soft);font-size:14px}.category-list a:hover{color:var(--accent)}.category-list small{color:var(--muted)}.tag-list{display:flex;flex-wrap:wrap;gap:7px}.tag-list a,.post-tags a{padding:3px 9px;border:1px solid var(--line);border-radius:5px;color:var(--ink-soft);background:var(--paper);font-size:12px}.tag-list a:hover,.post-tags a:hover{color:var(--accent);border-color:var(--accent)}
    .page-wrap{padding:62px 0 100px}.page-heading{padding-bottom:25px;border-bottom:1px solid var(--line);margin-bottom:38px}.page-heading p:last-child{color:var(--muted);margin:0}.content-narrow{max-width:880px}.archive-list{padding:12px 28px}.archive-year{font-size:23px;margin:24px 0 6px}.archive-row{display:flex;gap:22px;align-items:baseline;padding:15px 0;border-bottom:1px solid var(--line)}.archive-row:last-child{border:0}.archive-row time{flex:none;color:var(--muted);font-size:13px}.archive-row a{color:var(--ink);font-weight:600}.archive-row a:hover{color:var(--accent)}.archive-row small{margin-left:auto;color:var(--muted)}.about-card{padding:32px;color:var(--ink-soft)}.about-card h2{color:var(--ink);margin-top:0}.about-card p{max-width:65ch}
    .article-hero{min-height:245px;padding:48px 20px 93px;text-align:center;background:linear-gradient(180deg,var(--paper),var(--accent-soft));border-bottom:1px solid var(--line)}.article-hero .back-link{display:inline-block;margin-bottom:15px;font-size:13px}.article-hero h1{font-size:clamp(31px,3.2vw,44px);line-height:1.3;max-width:900px;margin:0 auto 12px;letter-spacing:-.035em}.article-hero-meta{display:flex;gap:15px;justify-content:center;flex-wrap:wrap;color:var(--muted);font-size:13px}
    .reading-progress{position:fixed;z-index:40;top:70px;left:0;width:100%;height:3px;pointer-events:none}.reading-progress span{display:block;background:var(--accent);height:100%;width:0}
    .article-stage{position:relative;padding-bottom:100px}.article-paper{position:relative;width:min(100% - 48px,880px);min-height:640px;margin:-55px auto 0;padding:68px 72px 58px;background:var(--surface);border:1px solid var(--line);border-radius:9px;box-shadow:0 20px 50px rgba(21,45,33,.08)}
    .article-body{color:var(--ink-soft);font-size:17px;line-height:1.95;overflow-wrap:anywhere}.article-body>*:first-child{margin-top:0}.article-body p,.article-body ul,.article-body ol,.article-body pre,.article-body blockquote{margin:0 0 1.45em}.article-body h2,.article-body h3{color:var(--ink);line-height:1.4;scroll-margin-top:95px}.article-body h2{font-size:25px;margin:2.1em 0 .75em;padding-bottom:.35em;border-bottom:1px solid var(--line)}.article-body h3{font-size:20px;margin:1.7em 0 .65em}.article-body ul,.article-body ol{padding-left:1.45em}.article-body li+li{margin-top:.35em}.article-body code{padding:2px 5px;background:var(--paper);border:1px solid var(--line);border-radius:4px;font:14px/1.5 ui-monospace,Consolas,monospace}.article-body pre{padding:20px;background:#15211c;color:#e8f3ed;border-radius:7px;overflow:auto;line-height:1.65}.article-body pre code{padding:0;border:0;background:none;color:inherit}.article-body blockquote{border-left:3px solid var(--accent);padding:12px 18px;background:var(--accent-soft);border-radius:0 5px 5px 0}.article-body blockquote p:last-child{margin:0}.article-body a{text-decoration:underline;text-underline-offset:3px}
    .toc-position{position:absolute;top:20px;bottom:0;left:calc(50% + 462px);width:245px}.toc{position:sticky;top:94px;max-height:calc(100vh - 110px);overflow:auto;padding:19px 17px;background:var(--surface);border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow)}.toc h2{font-size:16px;margin:0 0 10px;padding-bottom:10px;border-bottom:1px solid var(--line)}.toc a{display:block;padding:7px 9px;border-left:2px solid transparent;color:var(--ink-soft);font-size:13px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toc a[data-level="3"]{padding-left:19px}.toc a:hover,.toc a.active{color:var(--accent);background:var(--accent-soft);border-left-color:var(--accent)}
    .post-end{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:50px;padding-top:20px;border-top:1px solid var(--line)}.post-tags{display:flex;flex-wrap:wrap;gap:7px}.post-end a.back{font-size:13px;white-space:nowrap}
    .toc-fab{display:none;position:fixed;z-index:35;right:18px;bottom:20px;align-items:center;gap:8px;padding:11px 15px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--accent);box-shadow:0 10px 24px rgba(0,0,0,.15);font-size:14px}.toc-fab svg{width:17px;height:17px}
    .search-dialog{border:1px solid var(--line);border-radius:12px;padding:0;width:min(560px,calc(100% - 30px));background:var(--surface);color:var(--ink);box-shadow:0 26px 70px rgba(0,0,0,.22)}.search-dialog::backdrop{background:rgba(12,20,15,.38);backdrop-filter:blur(3px)}.dialog-top{display:flex;align-items:center;gap:10px;padding:15px 17px;border-bottom:1px solid var(--line)}.dialog-top input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--ink)}.dialog-top button{border:0;background:transparent;color:var(--muted);font-size:22px}.search-results{max-height:50vh;overflow:auto;padding:8px}.search-results a{display:block;padding:11px 12px;border-radius:6px;color:var(--ink)}.search-results a:hover{background:var(--accent-soft);color:var(--accent)}.search-results small{display:block;color:var(--muted)}.search-results p{padding:10px;color:var(--muted);margin:0}
    .site-footer{border-top:1px solid var(--line);padding:25px 0;color:var(--muted);font-size:13px}.footer-inner{display:flex;justify-content:space-between;gap:16px}.footer-inner p{margin:0}
    @media(max-width:1520px){.toc-position{left:calc(50% + 454px);width:210px}}
    @media(max-width:1370px){.toc-position{display:none}.toc-fab{display:flex}.article-paper{width:min(100% - 48px,880px)}}
    @media(max-width:1000px){.home-layout{grid-template-columns:minmax(0,1fr) 290px;gap:38px 28px}.header-actions{margin-left:20px}.nav a{padding:8px 9px}}
    @media(max-width:760px){.shell{width:min(100% - 32px,560px)}.header-inner{min-height:62px}.site-header .brand-mark{width:35px;height:35px;font-size:24px}.menu-button{display:grid;margin-left:auto}.header-actions{margin-left:0}.nav{display:none;position:absolute;top:62px;left:0;right:0;padding:10px 16px 16px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.nav.open{display:grid}.nav a{display:block}.home-layout{display:flex;flex-direction:column;gap:34px;padding-top:38px;padding-bottom:65px}.home-heading{padding-bottom:22px}.home-aside{order:3}.home-content{order:2}.home-heading{order:1}.page-wrap{padding:40px 0 70px}.article-hero{min-height:212px;padding:34px 16px 78px}.article-paper{width:calc(100% - 24px);padding:38px 26px;margin-top:-43px}.article-body{font-size:16px}.reading-progress{top:62px}.footer-inner{flex-direction:column}.post-card{padding:19px}.archive-list{padding:8px 18px}}
    @media(max-width:430px){.brand{font-size:15px}.article-paper{padding:32px 20px}.article-hero h1{font-size:29px}.archive-row{gap:12px}.archive-row small{display:none}.home-meta{gap:10px;flex-wrap:wrap}}
    @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.post-card{transition:none}}
    .icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
    #TableOfContents ul{list-style:none;padding:0;margin:0}
    #TableOfContents ul ul a{padding-left:19px}
    .article-body img{display:block;max-width:100%;height:auto;margin:1.5em auto;border-radius:6px}
    .article-body a{overflow-wrap:anywhere}

    .section-intro{margin-bottom:26px}.section-intro:empty{display:none}
    .profile-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:17px}.profile-links a{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink-soft);transition:background .18s,border-color .18s,color .18s,transform .18s}.profile-links a:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);transform:translateY(-2px)}.profile-links svg{width:18px;height:18px}.profile-link-word{font-size:17px;font-weight:600;line-height:1}
    .article-body figure{margin:1.6em 0}.article-body figcaption{text-align:center;color:var(--muted);font-size:13px}
    .article-body table{border-collapse:collapse;display:block;max-width:100%;overflow:auto;margin:1.5em 0}.article-body th,.article-body td{padding:9px 12px;border:1px solid var(--line)}.article-body th{background:var(--paper)}
    .article-body .tabs-wrapper{border:1px solid var(--line);border-radius:8px;margin:1.5em 0;overflow:hidden}.article-body [role="tablist"]{display:flex;gap:4px;padding:7px;background:var(--paper);border-bottom:1px solid var(--line)}.article-body [role="tab"]{padding:7px 12px;border:0;border-radius:5px;background:transparent;color:var(--ink-soft)}.article-body [role="tab"][aria-selected="true"]{background:var(--accent-soft);color:var(--accent)}.article-body [role="tabpanel"]{padding:18px}
    .article-body .code-block-container{position:relative;margin:1.5em 0;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#f7f8f7;box-shadow:0 1px 3px rgba(19,39,30,.035)}.article-body .code-block-tools{position:absolute;z-index:1;top:7px;right:10px;display:flex;align-items:center;gap:7px;color:var(--muted);font:11px/1 var(--font)}.article-body .code-copy-button{display:grid;place-items:center;width:25px;height:25px;padding:3px;border:0;border-radius:4px;background:transparent;color:var(--muted);opacity:.38}.article-body .code-copy-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.article-body .code-block-container:hover .code-copy-button,.article-body .code-copy-button:focus-visible{opacity:1}.article-body .code-copy-button:hover{background:var(--accent-soft);color:var(--accent)}.article-body .code-block-content{overflow:auto}.article-body .code-block-container .highlight{margin:0;background:transparent}.article-body .code-block-container .chroma{background:transparent}.article-body .code-block-container pre{margin:0;padding:17px 105px 17px 18px;border-radius:0;background:transparent;color:var(--ink);font:14px/1.65 ui-monospace,Consolas,monospace;white-space:pre;overflow:auto}.article-body .code-block-container pre code{font:inherit;white-space:inherit}.article-body .code-block-container .ln{display:inline-block;min-width:2.3em;margin-right:12px;color:#a5b0ab;user-select:none}html[data-theme="dark"] .article-body .code-block-container{background:#202522}html[data-theme="dark"] .article-body .code-block-container .ln{color:#78847d}
    .article-body .code-block-tools{display:grid;place-items:center;min-width:25px;gap:0}.article-body .code-block-language,.article-body .code-copy-button{grid-area:1/1}.article-body .code-copy-button{opacity:0;pointer-events:none}.article-body .code-block-container:hover .code-block-language,.article-body .code-block-container:focus-within .code-block-language{visibility:hidden}.article-body .code-block-container:hover .code-copy-button,.article-body .code-block-container:focus-within .code-copy-button{opacity:1;pointer-events:auto}@media (hover:none){.article-body .code-block-language{visibility:hidden}.article-body .code-copy-button{opacity:1;pointer-events:auto}}
    .brand-mark,.profile-mark{display:block;object-fit:cover;object-position:center;letter-spacing:normal;padding:0;background:var(--surface);border:1px solid var(--line)}.brand-mark::after,.profile-mark::after{content:none}
