@font-face{font-family:et-book;src:url(/fonts/et-book/et-book-roman-line-figures.woff) format("woff"),url(/fonts/et-book/et-book-roman-line-figures.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:et-book;src:url(/fonts/et-book/et-book-display-italic-old-style-figures.woff) format("woff"),url(/fonts/et-book/et-book-display-italic-old-style-figures.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:et-book;src:url(/fonts/et-book/et-book-bold-line-figures.woff) format("woff"),url(/fonts/et-book/et-book-bold-line-figures.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:et-book-roman-old-style;src:url(/fonts/et-book/et-book-roman-old-style-figures.woff) format("woff"),url(/fonts/et-book/et-book-roman-old-style-figures.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--serif: "et-book", Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, "Songti SC", STSong, "Noto Serif SC", serif;--sans: "Inter", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "JetBrains Mono", "Fira Code", "SF Mono", Consolas, "Liberation Mono", Menlo, Courier, monospace;--cn-serif: "Songti SC", STSong, "Noto Serif SC", serif;--g: 1;--fs-blog-body: 1;--lh-blog-body: 1;--fs-blog-h1: 1;--lh-blog-h1: 1;--fs-blog-h2: 1;--lh-blog-h2: 1;--fs-blog-h3: 1;--lh-blog-h3: 1;--fs-blog-h4: 1;--lh-blog-h4: 1;--fs-blog-h5: 1;--lh-blog-h5: 1;--fs-blog-list: 1;--lh-blog-list: 1;--fs-blog-code: 1;--fs-blog-pre: 1;--lh-blog-pre: 1;--fs-blog-quote: 1;--fs-blog-byline: 1;--lh-blog-byline: 1;--fs-blog-table: 1;--lh-blog-table: 1;--fs-blog-sidenote: 1;--lh-blog-sidenote: 1;--fs-blog-pill: 1;--fs-blog-bib: 1;--lh-blog-bib: 1;--fs-blog-math: 1;--fs-toc: 1;--lh-toc: 1;--fs-hp-name: 1;--fs-hp-namecn: 1;--fs-hp-links: 1;--fs-hp-intro: 1;--lh-hp-intro: 1;--fs-hp-h2: 1;--fs-hp-pub-title: 1;--fs-hp-pub-authors: 1;--fs-hp-pub-venue: 1;--fs-hp-news: 1;--fs-hp-bloglist: 1;--fs-footer: 1;--bg: #fffff8;--bg-soft: #f7f7f0;--text: #111111;--text-strong: #111111;--text-muted: #666666;--border: #dddddd;--link: #3b6f9f;--highlight-bg: #f0f0e8;--highlight-shadow: rgba(0, 0, 0, .05);--highlight-weak: rgba(128, 128, 128, .2);--highlight-strong: rgba(128, 128, 128, .4);--badge-bg: #c0392b;--badge-text: #ffffff;--btn-bg: #f0f0e8;--btn-hover: #e0e0d5;--code-bg: #f4f4ee;--code-border: #e0e0d8;--code-linenum: #b3b3a8;--code-gutter-border: #ddddd2;--table-border: #cccccc;--table-header-bg: #f4f4ee;--table-row-even: #fafaf5;--table-row-hover: #efefe8;--radius-sm: .2rem}html.dark{--bg: #151515;--bg-soft: #1d1d1d;--text: #dddddd;--text-strong: #eeeeee;--text-muted: #999999;--border: #333333;--link: #7eb8e0;--highlight-bg: #252525;--highlight-shadow: rgba(255, 255, 255, .03);--badge-bg: #c0392b;--badge-text: #ffffff;--btn-bg: #2a2a2a;--btn-hover: #3a3a3a;--code-bg: #252525;--code-border: #333333;--code-linenum: #585858;--code-gutter-border: #3a3a3a;--table-border: #444444;--table-header-bg: #2a2a2a;--table-row-even: #222222;--table-row-hover: #2d2d2d}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:10.5pt;scroll-behavior:smooth;background-color:var(--bg);color:var(--text);transition:background-color .3s,color .3s}body{font-family:var(--serif);margin:0 auto;background-color:var(--bg)}h1,h2,h3,h4,h5{font-family:var(--serif);font-weight:700;font-style:normal;color:var(--text);line-height:1.2}h1{font-size:2rem;margin:1.5rem 0 .8rem}h2{font-size:1.5rem;margin:1.5rem 0 .8rem}h3{font-size:1.25rem;margin:1.2rem 0 .6rem}h4{font-size:1.1rem;margin:1rem 0 .5rem}h5{font-size:1rem;margin:1rem 0 .5rem}.heading-en,em,i{font-style:italic}a{color:var(--link);text-decoration:none;transition:opacity .15s}a:hover{opacity:.7}strong,b{font-weight:700;color:var(--text-strong)}img,video{max-width:100%;border-radius:5px}.blog-post section a:not(.sidenote-link):not(.sidenote-num):not(.cite),.homepage .intro a,.news-list a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.12em}.blog-post section a:not(.sidenote-link):not(.sidenote-num):not(.cite):hover,.homepage .intro a:hover,.news-list a:hover{opacity:1;text-decoration-thickness:2px}code{font-family:var(--mono);font-size:.88em;background:var(--code-bg);padding:.1em .35em;border-radius:3px}pre{background:var(--code-bg);padding:1rem 1.2rem;border-radius:4px;overflow-x:auto;margin:1rem 0;line-height:1.5;border:1px solid var(--code-border)}pre code{background:none;padding:0}blockquote{border-left:3px solid var(--text-muted);margin:1rem 0;padding:.2rem 1rem;color:var(--text-muted);font-style:italic}.btn{display:inline-block;font-family:var(--sans);font-size:.85rem;padding:2px 8px;border-radius:3px;background:var(--btn-bg);color:var(--text);transition:background .15s}.btn:hover{background:var(--btn-hover);opacity:1}.btn-orange{background:#f09138;color:#fff}.btn-orange:hover{background:#e08028}.btn-red{background:#c0392b;color:#fff}.btn-red:hover{background:#a93226}.btn-dark{background:#555;color:#fff}.btn-dark:hover{background:#333}.badge-new{display:inline-block;margin-right:4px;padding:1px 5px;font-size:10px;font-weight:600;color:var(--badge-text);background-color:var(--badge-bg);border-radius:3px;vertical-align:middle;font-family:var(--sans)}header.header{padding:3rem 0 1.5rem;border-bottom:1px solid var(--border);margin-bottom:2rem}.header-content{display:flex;align-items:center;gap:24px}.header-avatar{width:90px;height:90px;border-radius:50%;background:var(--border);flex-shrink:0;overflow:hidden}.header-avatar img{width:100%;height:100%;object-fit:cover}.header-name h1{font-size:calc(1.6rem * var(--g) * var(--fs-hp-name));margin:0;color:var(--text-strong)}.header-name-cn{font-family:var(--cn-serif);font-size:calc(1.15rem * var(--g) * var(--fs-hp-namecn));font-weight:400;color:var(--text-muted);letter-spacing:.06em}.header-links{margin-top:4px;font-family:var(--sans);font-size:calc(.9rem * var(--g) * var(--fs-hp-links));color:var(--text-muted)}.header-links a{color:var(--link)}.header-links .sep{color:var(--text-muted);margin:0 2px}.theme-toggle{position:absolute;top:20px;right:24px;background:none;border:1px solid var(--border);border-radius:50%;width:36px;height:36px;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;color:var(--text);transition:background .15s;z-index:20}.theme-toggle:hover{background:var(--btn-bg)}.publication{display:flex;gap:20px;padding:16px 0;border-bottom:1px solid var(--border);transition:background .2s}.publication:last-child{border-bottom:none}.pub-media{width:160px;flex-shrink:0;border-radius:6px;overflow:hidden;background:var(--border);min-height:100px;background-size:cover;background-position:center}.pub-media video{width:100%;height:auto;display:block}.pub-text{flex:1;min-width:0}.pub-text .paper-title{font-weight:600;font-size:calc(1.2rem * var(--g) * var(--fs-hp-pub-title));line-height:1.5;color:var(--text-strong)}.pub-text .paper-authors{font-size:calc(1.1rem * var(--g) * var(--fs-hp-pub-authors));line-height:1.5;margin:3px 0}.pub-text .paper-venue{font-size:calc(1.05rem * var(--g) * var(--fs-hp-pub-venue));color:var(--text-muted);margin:3px 0;font-style:italic}.pub-text .paper-links{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.pub-text .bold{font-weight:700}.publication.highlighted{background:var(--highlight-bg);border-radius:8px;padding:16px;margin:8px -16px;border-bottom:none;box-shadow:0 2px 8px var(--highlight-shadow)}.filter-bar{margin:8px 0 20px;font-family:var(--sans);font-size:.9rem;display:flex;flex-wrap:wrap;gap:6px}.filter-btn{background:var(--btn-bg);border:none;border-radius:4px;padding:4px 12px;cursor:pointer;font-size:.85rem;font-family:var(--sans);color:var(--text);transition:background .15s}.filter-btn:hover{background:var(--btn-hover)}.filter-btn.active{background:var(--text-strong);color:var(--bg)}.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:16px 0}.video-item{text-align:center}.video-item video{width:100%;border-radius:6px}.video-item p{margin-top:4px;font-size:.9rem}.blog-list{list-style:none;padding:0}.blog-list li{padding:14px 0;border-bottom:1px solid var(--border)}.blog-list li:last-child{border-bottom:none}.blog-list .post-date{font-family:var(--serif);font-size:calc(1.1rem * var(--g) * var(--fs-hp-bloglist));color:var(--text-muted);min-width:110px;display:inline-block}.blog-list .post-title{font-weight:600;font-size:calc(1.3rem * var(--g) * var(--fs-hp-bloglist));color:var(--text-strong)}.blog-list .post-desc{font-size:calc(1.15rem * var(--g) * var(--fs-hp-bloglist));line-height:1.7rem;color:var(--text-muted);margin-top:4px}.homepage{max-width:55%;margin:0 auto;padding:0 0 3rem}.homepage h2{font-size:calc(1.9rem * var(--g) * var(--fs-hp-h2));margin:2rem 0 1rem}.homepage .intro{font-size:calc(1.4rem * var(--g) * var(--fs-hp-intro))}.homepage .intro p{line-height:calc(2.2rem * var(--lh-hp-intro));text-align:justify;text-justify:inter-ideograph;margin:1.4rem 0}.homepage .news-list li{font-size:calc(1.2rem * var(--g) * var(--fs-hp-news));line-height:1.9rem;margin-bottom:.3rem}.blog-wrapper{width:87.5%;max-width:1400px;margin-left:auto;margin-right:auto;padding-left:12.5%;counter-reset:sidenote-counter}.blog-wrapper.blog-index{padding-right:12.5%}.blog-wrapper.blog-article{--col: min(46vw, 800px);--sn-gap: 64px;--sn-w: calc(100vw - 14vw - var(--col) - var(--sn-gap) - 8vw);width:auto;max-width:none;margin:0;padding-left:14vw;padding-right:0}article.blog-post{padding:1rem 0 3rem}.blog-post h1{font-size:calc(2.5rem * var(--g) * var(--fs-blog-h1));line-height:calc(1 * var(--lh-blog-h1));margin:1.5rem 0 .3rem}.blog-post h2{font-size:calc(2.3rem * var(--g) * var(--fs-blog-h2));line-height:calc(1.2 * var(--lh-blog-h2));margin:2rem 0 1rem}.blog-post h3{font-size:calc(2rem * var(--g) * var(--fs-blog-h3));line-height:calc(1.2 * var(--lh-blog-h3));margin:1.5rem 0 .8rem}.blog-post h4{font-size:calc(1.75rem * var(--g) * var(--fs-blog-h4));line-height:calc(1.2 * var(--lh-blog-h4));margin:1.2rem 0 .5rem}.blog-post h5{font-size:calc(1.5rem * var(--g) * var(--fs-blog-h5));line-height:calc(1.2 * var(--lh-blog-h5));margin:1rem 0 .5rem}.blog-post h1>code,.blog-post h2>code,.blog-post h3>code{font-size:.8em}.blog-post section>p,.blog-post>p{font-size:calc(1.4rem * var(--g) * var(--fs-blog-body));line-height:calc(2.2rem * var(--lh-blog-body));margin:1.4rem 0;text-align:justify;text-justify:inter-ideograph}.blog-post section>ul,.blog-post section>ol,.blog-post section>dl{font-size:calc(1.4rem * var(--g) * var(--fs-blog-list));line-height:calc(2.2rem * var(--lh-blog-list));margin:1.4rem 0}.blog-post ul,.blog-post ol{padding-left:1.6em}.blog-post li{margin-bottom:0}.blog-post li>ul,.blog-post li>ol{margin:0}.blog-post section>p,.blog-post section>ul,.blog-post section>ol,.blog-post section>dl,.blog-post section>table,.blog-post section>footer,.blog-post>p,.blog-post .article-byline{width:var(--col)}.blog-post section>pre,.blog-post pre{width:var(--col)}.blog-post section>figure{max-width:var(--col)}.blog-post .fullwidth,.blog-post figure.fullwidth{max-width:90%;clear:both}.blog-post .fullwidth img,.blog-post .fullwidth svg{max-width:100%}.blog-post hr{width:var(--col);margin:1.6rem 0;border:none;border-top:1px solid var(--border)}.blog-post code{font-size:calc(1.2rem * var(--g) * var(--fs-blog-code))}.blog-post pre{position:relative}.blog-post pre>code{font-size:calc(1.2rem * var(--g) * var(--fs-blog-pre));line-height:calc(1.5 * var(--lh-blog-pre))}.blog-post pre.astro-code{background:var(--code-bg)!important;padding:.9rem 1.1rem}html.dark .blog-post pre.astro-code,html.dark .blog-post pre.astro-code span{color:var(--shiki-dark)!important}.blog-post pre.astro-code>code{display:block;counter-reset:step;counter-increment:step 0;background:linear-gradient(var(--code-gutter-border),var(--code-gutter-border)) 2.4em 0 / 1px 100% no-repeat}.blog-post pre.astro-code .line:before{content:counter(step);counter-increment:step;display:inline-block;width:2.4em;margin-right:1em;padding-right:.9em;text-align:right;color:var(--code-linenum);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;pointer-events:none}.blog-post pre.astro-code .line:last-child:empty{display:none}.blog-post section>img,.blog-post section>svg{display:block;max-width:var(--col);position:relative;left:calc(var(--col) / 2);transform:translate(-50%)}.blog-post section>figure:not(.fullwidth)>img,.blog-post section>figure:not(.fullwidth)>svg{display:block;max-width:100%;margin-left:auto;margin-right:auto}.blog-post .post-meta,.blog-post .article-byline{width:var(--col);margin:-.4rem 0 1.6rem;color:var(--text);font-family:var(--serif);font-size:calc(1.2rem * var(--g) * var(--fs-blog-byline));line-height:calc(1.5 * var(--lh-blog-byline));text-align:left;opacity:.7}.blog-post .article-byline p{width:100%;margin:0;text-align:left;line-height:inherit}.blog-post blockquote{margin:2em 0;font-size:calc(1.4rem * var(--g) * var(--fs-blog-quote));border-left:3px solid var(--text-muted);padding-left:1rem}.blog-post blockquote p{width:100%;font-style:italic;font-size:inherit;margin:.3em 0}.blog-post blockquote blockquote{margin:.5em 0}.blog-post table{border-collapse:collapse;font-size:calc(.95rem * var(--g) * var(--fs-blog-table));line-height:calc(1.5 * var(--lh-blog-table));margin:1.2rem 0}.blog-post th,.blog-post td{border-bottom:1px solid var(--table-border);padding:.4em .8em;text-align:left}.blog-post thead th{background:var(--table-header-bg);font-weight:600}.blog-post tbody tr:nth-child(2n){background:var(--table-row-even)}.blog-post tbody tr:hover{background:var(--table-row-hover)}.blog-post figure[role=math]{display:block;width:var(--col);text-align:center;margin:1em 0;padding:.5em 0;font-size:calc(1.4em * var(--g) * var(--fs-blog-math));line-height:1.2;overflow-x:auto;overflow-y:hidden}.blog-post .katex-display{width:var(--col);margin:1rem 0;overflow-x:auto;overflow-y:hidden;font-size:calc(1.21em * var(--g) * var(--fs-blog-math))}.blog-post .katex-display>.katex{max-width:100%}.blog-post section[role=doc-bibliography] ul,.blog-post .bibliography ul,.blog-post .bibliography ol,.blog-post .references ul,.blog-post .references ol{list-style:none;padding-left:0;width:var(--col);margin:0}.blog-post .bibliography h2,.blog-post section[role=doc-bibliography] h2{font-style:italic}.blog-post .bibliography li,.blog-post .references li,.blog-post section[role=doc-bibliography] li{text-indent:-2em;padding:.3em 0 .3em 2em;text-align:justify;font-size:calc(1rem * var(--g) * var(--fs-blog-bib));line-height:calc(1.6 * var(--lh-blog-bib))}.blog-post .prefix a[role=doc-backlink],.blog-post .references a{text-decoration:none;color:var(--text-muted)}.blog-post .prefix a[role=doc-backlink]:hover{color:var(--text-strong)}.blog-post .cite,.blog-post .prefix a.cite[role=doc-backlink]{color:inherit;text-decoration:none}.blog-post .cite:hover{color:var(--text-strong)}.blog-post .cite-num{border-bottom:1px solid currentColor;padding-bottom:.02em;line-height:1}.blog-post .cite-group{white-space:nowrap}.footer{text-align:center;padding:40px 0;font-size:calc(.9rem * var(--g) * var(--fs-footer));color:var(--text-muted);line-height:2}.home-link{color:inherit;text-decoration:none}.home-link:hover{opacity:1}.header-name a.home-link:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.14em}.header-avatar a.home-link{display:block}.visitor-map{margin:40px 0 8px}.visitor-map h2{margin-bottom:.6em}.visitor-map-frame{display:flex;justify-content:center}.visitor-map-frame img{max-width:100%;height:auto;border-radius:6px;border:1px solid var(--border)}.visitor-map-placeholder{display:flex;flex-direction:column;align-items:center;gap:.9rem;width:100%;max-width:420px;padding:1.8rem 1.4rem;border:1px dashed var(--border);border-radius:8px;color:var(--text-muted);text-align:center}.visitor-map-placeholder svg{width:56px;height:56px;color:var(--text-muted);opacity:.7}.visitor-map-placeholder p{font-size:.9rem;line-height:1.5;margin:0;max-width:32ch}.sidenote-ref{line-height:0;position:relative;vertical-align:baseline;top:-.5em}.sidenote-link{display:inline-block;font-size:calc(1.05rem * var(--g) * var(--fs-blog-pill));font-family:var(--serif);line-height:1;padding:0 .12em .1em;margin:0 .12em;border-bottom:1px solid currentColor;border-radius:0;background:none;color:var(--text);text-decoration:none;cursor:pointer;transition:background .15s,color .15s}.sidenote-link:hover,.sidenote-link:focus-visible{color:var(--text-strong);background:var(--highlight-bg);outline:none}.sidenote{display:block}.sidenote[hidden]{display:none}.sidenote-num{display:inline-block;font-family:var(--serif);font-weight:400;line-height:1;font-size:1.08em;vertical-align:.1em;padding:0 .12em .1em;margin-right:.4em;border-bottom:1px solid currentColor;color:var(--text);text-decoration:none}a.sidenote-num:hover{color:var(--text-strong)}.sidenote-ref,.sidenote-ref+.sidenote{--highlight: transparent;background-color:var(--highlight);box-shadow:0 0 0 5px var(--highlight);border-radius:var(--radius-sm);transition:background-color .3s ease 1s,box-shadow .3s ease 1s}.sidenote-ref:hover+.sidenote{--highlight: var(--highlight-weak);transition-delay:0s}.sidenote-ref:has(+.sidenote:hover){--highlight: var(--highlight-strong);transition-delay:0s}@media(min-width:761px){.blog-post .sidenote{float:right;clear:right;width:var(--sn-w);margin-right:calc(-1 * var(--sn-w) - var(--sn-gap));margin-top:.3rem;margin-bottom:0;font-size:calc(1.1rem * var(--g) * var(--fs-blog-sidenote));line-height:calc(1.3 * var(--lh-blog-sidenote));color:var(--text);vertical-align:baseline;position:relative}.blog-post blockquote .sidenote{text-align:left}}.toc-sidebar{position:fixed;top:15rem;left:1.5vw;z-index:10;display:none;width:10.5%;max-height:calc(100vh - 11rem);overflow-y:auto;color:#aaa;font-family:var(--serif)}html.dark .toc-sidebar{color:#666}.toc-sidebar ol{margin:0;padding:0;list-style:none}.toc-sidebar li{margin:0 0 .2em}.toc-sidebar .toc-after-title{padding-left:.8em}.toc-sidebar a:any-link{display:block;color:inherit;font-size:calc(.95rem * var(--g) * var(--fs-toc));line-height:calc(1.1 * var(--lh-toc));text-decoration:none;border-left:1px solid transparent;padding-left:.6em;transition:border-color .12s ease,color .12s ease}.toc-sidebar a:hover,.toc-sidebar a:focus-visible,.toc-sidebar a.is-active{color:var(--text-strong);border-left-color:currentColor;outline:none;opacity:1}@media(min-width:1200px){.toc-sidebar{display:block}}.code-copy-btn{position:absolute;top:.55em;right:.55em;display:inline-flex;align-items:center;justify-content:center;width:1.85em;height:1.85em;padding:0;color:var(--code-linenum);background:color-mix(in srgb,var(--code-bg) 60%,transparent);border:1px solid transparent;border-radius:6px;cursor:pointer;opacity:0;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity .15s ease,color .15s ease,background .15s ease,border-color .15s ease}.code-copy-btn svg{width:15px;height:15px;display:block}.blog-post pre:hover .code-copy-btn,.code-copy-btn:focus-visible{opacity:1;outline:none}.code-copy-btn:hover{color:var(--text);background:var(--btn-hover);border-color:var(--code-border)}.code-copy-btn.copied{opacity:1;color:#2e7d32;background:transparent;border-color:transparent}#typetune-panel{position:fixed;top:0;right:0;z-index:9999;width:320px;max-width:90vw;height:100vh;overflow-y:auto;background:var(--bg);color:var(--text);border-left:1px solid var(--border);box-shadow:-4px 0 24px #0000001f;font-family:var(--sans);font-size:12px;padding:14px 16px 60px;transform:translate(100%);transition:transform .2s ease}#typetune-panel.open{transform:translate(0)}#typetune-panel h3{font-family:var(--sans);font-size:14px;font-weight:700;margin:0 0 2px}#typetune-panel .tt-sub{color:var(--text-muted);font-size:11px;margin-bottom:10px}#typetune-panel .tt-group{margin:12px 0 4px}#typetune-panel .tt-group>summary{cursor:pointer;font-weight:700;font-size:12px;padding:5px 0;border-bottom:1px solid var(--border);list-style:none}#typetune-panel .tt-group>summary::-webkit-details-marker{display:none}#typetune-panel .tt-group>summary:before{content:"▸ ";color:var(--text-muted)}#typetune-panel .tt-group[open]>summary:before{content:"▾ "}#typetune-panel .tt-row{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;padding:5px 0 2px}#typetune-panel .tt-row .tt-label{font-size:11.5px}#typetune-panel .tt-row .tt-val{font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:10.5px;text-align:right}#typetune-panel .tt-sliders{grid-column:1 / -1;display:flex;gap:6px}#typetune-panel .tt-sliders label{flex:1;display:flex;align-items:center;gap:4px;color:var(--text-muted);font-size:10px}#typetune-panel input[type=range]{flex:1;min-width:0;accent-color:var(--link)}#typetune-panel select{width:100%;font-family:var(--sans);font-size:11px;padding:3px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px}#typetune-panel .tt-actions{position:sticky;bottom:0;background:var(--bg);display:flex;gap:6px;padding:10px 0 4px;margin-top:10px;border-top:1px solid var(--border)}#typetune-panel button.tt-btn{flex:1;font-family:var(--sans);font-size:11px;padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:var(--btn-bg);color:var(--text);cursor:pointer}#typetune-panel button.tt-btn:hover{background:var(--btn-hover)}#typetune-panel .tt-close{position:absolute;top:10px;right:12px;background:none;border:none;font-size:18px;cursor:pointer;color:var(--text-muted)}#typetune-panel .tt-hint{color:var(--text-muted);font-size:10px;margin-top:8px}@media(max-width:760px){.homepage{width:100%;max-width:100%;padding:0 1rem 2rem}.blog-wrapper{width:100%;max-width:100%;padding-left:0;padding-right:0}article.blog-post{padding:1rem 1rem 3rem}.blog-post section>p,.blog-post>p,.blog-post section>ul,.blog-post section>ol,.blog-post section>dl,.blog-post section>table,.blog-post table,.blog-post section>pre,.blog-post pre,.blog-post section>figure,.blog-post figure[role=math],.blog-post .katex-display,.blog-post .post-meta,.blog-post .article-byline,.blog-post hr,.blog-post blockquote p,.blog-post .bibliography ul,.blog-post .bibliography ol,.blog-post .references ul,.blog-post .references ol,.blog-post section[role=doc-bibliography] ul{width:100%;max-width:100%}.blog-post section>img,.blog-post section>svg{max-width:100%;left:0;transform:none;margin-left:auto;margin-right:auto}.blog-post section>p,.blog-post>p{hyphens:auto}.blog-post .sidenote{float:none;width:100%;margin:.3rem 0 .8rem;padding:.6rem .8rem;font-size:calc(1.1rem * var(--g) * var(--fs-blog-sidenote));line-height:1.4;color:var(--text);background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius-sm);box-sizing:border-box}.header-content{flex-direction:column;text-align:center}.publication{flex-direction:column}.pub-media{width:100%}.video-grid{grid-template-columns:repeat(2,1fr)}.header-avatar{margin:0 auto}.blog-post h1{font-size:calc(2rem * var(--g) * var(--fs-blog-h1))}.blog-post h2{font-size:calc(1.7rem * var(--g) * var(--fs-blog-h2))}.blog-post h3{font-size:calc(1.45rem * var(--g) * var(--fs-blog-h3))}#typetune-panel{width:88vw}}.row{display:flex}.clearfix:after{content:"";display:table;clear:both}.italic{font-style:italic}.noselect{user-select:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
