.glass-surface{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:opacity .26s ease-out}.glass-surface__filter{width:100%;height:100%;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;z-index:-1}.glass-surface__content{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:.5rem;border-radius:inherit;position:relative;z-index:1}.glass-surface--svg{background:light-dark(hsl(0 0% 100% / var(--glass-frost, 0)),hsl(0 0% 0% / var(--glass-frost, 0)));-webkit-backdrop-filter:var(--filter-id, url(#glass-filter)) saturate(var(--glass-saturation, 1));backdrop-filter:var(--filter-id, url(#glass-filter)) saturate(var(--glass-saturation, 1));box-shadow:0 0 2px 1px light-dark(color-mix(in oklch,black,transparent 85%),color-mix(in oklch,white,transparent 65%)) inset,0 0 10px 4px light-dark(color-mix(in oklch,black,transparent 90%),color-mix(in oklch,white,transparent 85%)) inset,0 4px 16px #11111a0d,0 8px 24px #11111a0d,0 16px 56px #11111a0d,0 4px 16px #11111a0d inset,0 8px 24px #11111a0d inset,0 16px 56px #11111a0d inset}.glass-surface--fallback{background:#ffffff40;backdrop-filter:blur(12px) saturate(1.8) brightness(1.1);-webkit-backdrop-filter:blur(12px) saturate(1.8) brightness(1.1);border:1px solid rgba(255,255,255,.3);box-shadow:0 8px 32px #1f268733,0 2px 16px #1f26871a,inset 0 1px #fff6,inset 0 -1px #fff3}@media(prefers-color-scheme:dark){.glass-surface--fallback{background:#ffffff1a;backdrop-filter:blur(12px) saturate(1.8) brightness(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.8) brightness(1.2);border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 1px #fff3,inset 0 -1px #ffffff1a}}@supports not (backdrop-filter: blur(10px)){.glass-surface--fallback{background:#fff6;box-shadow:inset 0 1px #ffffff80,inset 0 -1px #ffffff4d}.glass-surface--fallback:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff26;border-radius:inherit;z-index:-1}}@supports not (backdrop-filter: blur(10px)){@media(prefers-color-scheme:dark){.glass-surface--fallback{background:#0006}.glass-surface--fallback:before{background:#ffffff0d}}}.glass-surface:focus-visible{outline:2px solid light-dark(#007aff,#0a84ff);outline-offset:2px}@font-face{font-family:Sarasa Mono SC Web;src:url(/Molforte.pages/assets/sarasa-mono-sc-subset-DVlzHp6-.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--bg: #ffffff;--bg-soft: #f5f5f7;--text: #1d1d1f;--text-2: #6e6e73;--text-3: #767676;--hairline: #d2d2d7;--link: #0071e3;--link-hover: #0077ed;--selection: rgba(0, 113, 227, .16);--accent-hover: rgba(0, 113, 227, .07);--glass-bg: rgba(130, 130, 140, .16);--glass-solid: rgba(255, 255, 255, .94);--glass-rim: linear-gradient( 180deg, rgba(255, 255, 255, .5) 0%, rgba(255, 255, 255, .05) 55%, rgba(255, 255, 255, .18) 100% );--glass-shadow: 0 12px 32px rgba(0, 0, 0, .16), 0 2px 6px rgba(0, 0, 0, .07), inset 0 1px 1px rgba(255, 255, 255, .3);--segment-sheen: rgba(255, 255, 255, .45);--active-segment: rgba(29, 29, 31, .09);--tooltip-bg: rgba(29, 29, 31, .92);--tooltip-text: #ffffff;--panel-bg: rgba(255, 255, 255, .94);--panel-shadow: 0 24px 80px rgba(29, 29, 31, .22);--backdrop: rgba(29, 29, 31, .18);--card-bg: linear-gradient(180deg, #ffffff 0%, #fbfbfd 100%);--card-border: rgba(29, 29, 31, .07);--card-border-hover: rgba(29, 29, 31, .16);--card-shadow: 0 1px 2px rgba(29, 29, 31, .03), 0 10px 28px rgba(29, 29, 31, .05), inset 0 1px 0 rgba(255, 255, 255, .9);--card-shadow-hover: 0 10px 24px rgba(29, 29, 31, .07), 0 2px 6px rgba(29, 29, 31, .04), inset 0 1px 0 rgba(255, 255, 255, .9);--chip-bg: rgba(29, 29, 31, .05);--row-hover-bg: rgba(29, 29, 31, .035);--hl-blue: #0066cc;--sans: -apple-system, BlinkMacSystemFont, "PingFang SC", Roboto, "Noto Sans CJK SC", "Source Han Sans SC", "Noto Sans SC", "Segoe UI", "Microsoft YaHei", "Hiragino Sans GB", system-ui, sans-serif;--mono: "Sarasa Mono SC", "Sarasa Mono SC Web", ui-monospace, "SF Mono", SFMono-Regular, "Cascadia Code", "JetBrains Mono", Menlo, Consolas, monospace;--gutter: clamp(1.5rem, 6vw, 2.5rem);--r-xs: 8px;--r-sm: 12px;--r-md: 16px;--r-lg: 20px;--r-xl: 28px;--r-pill: 999px;--ink-gap: .1em;--measure: min(76vw, 60rem);--measure-phone: 46rem;--dur-fast: .15s;--dur: .28s;--dur-slow: .5s;--ease-soft: cubic-bezier(.22, 1, .36, 1);--dock-h: 3.96rem;color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--bg: #000000;--bg-soft: #1d1d1f;--text: #f5f5f7;--text-2: #a1a1a6;--text-3: #86868b;--hairline: rgba(255, 255, 255, .12);--link: #0a84ff;--link-hover: #409cff;--selection: rgba(10, 132, 255, .35);--accent-hover: rgba(10, 132, 255, .18);--glass-solid: rgba(28, 28, 30, .9);--segment-sheen: rgba(255, 255, 255, .12);--active-segment: rgba(255, 255, 255, .12);--tooltip-bg: rgba(255, 255, 255, .95);--tooltip-text: #1d1d1f;--panel-bg: rgba(28, 28, 30, .96);--panel-shadow: 0 24px 80px rgba(0, 0, 0, .7);--backdrop: rgba(0, 0, 0, .6);--card-bg: #1d1d1f;--card-border: rgba(255, 255, 255, .08);--card-border-hover: rgba(255, 255, 255, .18);--card-shadow: 0 1px 2px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .04);--card-shadow-hover: 0 10px 24px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .06);--chip-bg: rgba(255, 255, 255, .08);--row-hover-bg: rgba(255, 255, 255, .06);--hl-blue: #6aa5ff}*,*:before,*:after{box-sizing:border-box}html{font-size:17px;-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:1rem;line-height:1.8;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}::selection{background:var(--selection)}img{max-width:100%}a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:var(--r-xs)}#root{min-height:100dvh;display:flex;flex-direction:column}.site-frame{flex:1;width:min(100% - 2 * var(--gutter),var(--measure));margin-inline:auto;display:flex;flex-direction:column;padding-bottom:calc(6rem + env(safe-area-inset-bottom,0px))}.site-main{width:100%;flex:1}.site-footer{margin-top:clamp(2.8rem,9vh,5rem);border-top:1px solid var(--hairline);padding:1.6rem 0 0}.site-footer__row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.site-footer__line{margin:0;color:var(--text-3);font-size:.875rem}.site-footer__line a{color:var(--text-2);text-decoration:none;transition:color .15s ease}.site-footer__line a:hover{color:var(--link)}.theme-toggle{flex:none;display:grid;place-items:center;margin:-.4rem -.4rem 0 0;padding:var(--r-sm);border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-2);cursor:pointer;transition:color .15s ease,background .15s ease}.theme-toggle:hover{color:var(--text);background:var(--chip-bg)}.theme-toggle:focus-visible{outline:2px solid var(--link);outline-offset:1px}.theme-toggle svg{width:1.05rem;height:1.05rem}@media(max-width:760px){.site-footer__row{align-items:flex-start}}.site-footer__stat{margin:.45rem 0 0;color:var(--text-3);font-size:.82rem}.dock{position:fixed;left:0;right:0;bottom:max(14px,env(safe-area-inset-bottom,0px));z-index:50;display:flex;justify-content:center;align-items:center;gap:.9rem;padding:0 .9rem;pointer-events:none}.dock>*{pointer-events:auto}.apptabbar{position:relative;display:flex;align-items:center;width:100%;height:100%;padding:.22rem}.dock-glass{flex:0 0 auto;overflow:visible}.dock-glass .glass-surface__content{padding:0}.dock-glass--circle:hover .search-island svg{scale:1.12}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.search-panel{border-color:transparent;background:linear-gradient(var(--glass-solid),var(--glass-solid)) padding-box,var(--glass-rim) border-box}}.apptabbar__tabs{position:relative;display:flex;width:100%;gap:.15rem;--tab-radius: var(--r-pill);--tab-my: .1rem}.apptabbar__tab{flex:1 1 0;min-width:0;position:relative;z-index:1;display:grid;place-items:center;margin:var(--tab-my) .08rem;padding:.36rem 0;border-radius:var(--tab-radius);color:var(--text-3);text-decoration:none;-webkit-tap-highlight-color:transparent;background:transparent;transition:color .18s ease,background .2s ease,box-shadow .2s ease}.apptabbar__tab:hover{color:var(--text-2)}.apptabbar__icon-wrap{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:50%;background:transparent}.apptabbar__icon{width:1.5rem;height:1.5rem;color:currentColor}.apptabbar__label{position:absolute;bottom:calc(100% + .55rem);left:50%;z-index:5;transform:translate(-50%) translateY(4px);background:var(--tooltip-bg);color:var(--tooltip-text);font-size:.72rem;line-height:1.4;padding:.35em var(--r-xs);border-radius:var(--r-xs);white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;box-shadow:0 4px 14px #1d1d1f33;transition:opacity .16s ease,transform .16s ease,visibility .16s}.apptabbar__tab:hover .apptabbar__label,.apptabbar__tab:focus-visible .apptabbar__label{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.apptabbar__tab.is-active{background:transparent;color:var(--text);box-shadow:none}.apptabbar__pill{position:absolute;left:0;top:var(--tab-my);bottom:var(--tab-my);border-radius:var(--tab-radius);background:var(--active-segment);box-shadow:inset 0 1px 1px var(--segment-sheen),0 1px 3px #1d1d1f0f;pointer-events:none;z-index:0}.apptabbar__tabs.is-ready .apptabbar__pill{transition:transform .34s var(--ease-soft),width .34s var(--ease-soft),opacity .2s ease}.apptabbar__tab:focus-visible{outline:2px solid var(--link);outline-offset:1px;border-radius:var(--tab-radius)}@media(hover:none){.apptabbar__label{display:none}}.search-island{position:relative;width:100%;height:100%;display:grid;place-items:center;border:0;background:transparent;color:var(--text-2);cursor:pointer;transition:color .15s ease}.search-island:hover{color:var(--text)}.search-island:focus-visible{outline:2px solid var(--link);outline-offset:2px}.search-island svg{width:1.35rem;height:1.35rem;transition:scale var(--dur-fast) ease}.search-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;justify-content:center;align-items:flex-start;padding:16vh 1rem 1rem;background:var(--backdrop);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade .15s ease both}.search-panel{width:min(92vw,40rem);border:1px solid transparent;background:linear-gradient(var(--panel-bg),var(--panel-bg)) padding-box,var(--glass-rim) border-box;-webkit-backdrop-filter:blur(24px) saturate(1.5);backdrop-filter:blur(24px) saturate(1.5);border-radius:var(--r-xl);box-shadow:var(--panel-shadow);overflow:hidden}@keyframes fade{0%{opacity:0}to{opacity:1}}.search-panel__row{display:flex;align-items:center;gap:.7rem;padding:calc(var(--r-xl) * .55) var(--r-xl);border-bottom:1px solid var(--hairline);color:var(--text-2)}.search-panel__row svg{flex:none;width:1.15rem;height:1.15rem}.search-panel__input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-family:inherit;font-size:1.08rem;color:var(--text)}.search-panel__input::placeholder{color:var(--text-3)}.search-panel__list{margin:0;padding:.4rem 0;list-style:none;max-height:46vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.search-panel__item a{display:flex;align-items:baseline;gap:1.2rem;padding:calc(var(--r-xl) * .35) var(--r-xl);color:var(--text);text-decoration:none}.search-panel__item a:hover{background:var(--accent-hover)}.search-panel__item time{flex:none;width:6rem;font-size:.82rem;color:var(--text-3);font-variant-numeric:tabular-nums}.search-panel__item span{font-weight:500}.search-panel__where{flex:none;margin-left:auto;font-weight:400;font-size:.78rem;color:var(--text-3)}.search-panel__hint{margin:0;padding:calc(var(--r-xl) * .5) var(--r-xl);color:var(--text-3);font-size:.9rem}.cursor-region{width:fit-content}.cursor-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:block;width:100vw;height:100vh;pointer-events:none;mix-blend-mode:difference}@media(hover:none),(pointer:coarse){.cursor-canvas{display:none}}.masthead{padding-top:clamp(3rem,10vh,6.5rem);padding-bottom:clamp(2.4rem,7vh,4rem)}.masthead__title{margin:0;font-size:clamp(2.6rem,7vw,4rem);font-weight:600;line-height:1.12;letter-spacing:-.01em}.masthead__tagline{margin:1.1rem 0 0;max-width:30em;color:var(--text-2);font-size:1.05rem}.post-index{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:1fr;gap:1.5rem}.post-card{margin:0;display:flex;min-height:11rem;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--card-shadow);transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.post-card:hover{border-color:var(--card-border-hover);transform:translateY(-3px);box-shadow:var(--card-shadow-hover)}.post-card__link{display:flex;flex:1;flex-direction:column;padding:var(--r-lg);color:var(--text);text-decoration:none}.post-card__title{--lh: 1.42;margin:calc((1 - var(--lh)) / 2 * 1em - var(--ink-gap)) 0 0;font-size:1.06rem;font-weight:600;line-height:var(--lh);letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .16s ease}.post-card:hover .post-card__title{color:var(--link)}.post-card__summary{--lh-sum: 1.6;flex:none;margin:.4rem 0 .75rem;color:var(--text-2);font-size:.9rem;line-height:var(--lh-sum);height:calc(3 * var(--lh-sum) * 1em);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.post-card__meta{margin:auto 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .55rem;font-size:.78rem;color:var(--text-3)}.post-card__date{color:var(--text-3);font-variant-numeric:tabular-nums}.post-card__tag{background:var(--chip-bg);color:var(--text-2);border-radius:var(--r-xs);padding:.16em var(--r-xs);font-size:.72rem;line-height:1.5}.post-card__read{color:var(--text-3);font-variant-numeric:tabular-nums}.post-card__link:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:var(--r-lg)}.home-section .home-foot{margin:1.1rem 0 0;border-top:0;padding-top:0}.home-foot{margin:3rem 0 0;border-top:1px solid var(--hairline);padding-top:1.6rem;color:var(--text-3);font-size:.875rem}.post,.static-page,.notfound{padding-top:clamp(2.2rem,8vh,4.4rem);width:100%}.post__back{display:inline-block;margin-bottom:2.2rem;color:var(--text-2);font-size:.9rem;text-decoration:none;transition:color .15s ease}.post__back:hover{color:var(--link)}.post__back:before{content:"←";margin-right:.5em}.post__title,.page__title{margin:0;font-size:clamp(1.9rem,5vw,2.8rem);font-weight:600;line-height:1.3;letter-spacing:-.01em}.post__meta{margin:1rem 0 0;font-size:.9rem;color:var(--text-2)}.post__meta .sep{margin:0 .6em;color:var(--text-3)}.page__intro{margin:1rem 0 0;color:var(--text-2);font-size:1.02rem}.post-body{margin-top:2.4rem;font-size:1.06rem;line-height:1.9;overflow-wrap:break-word}.static-page .post-body{margin-top:2rem}.post-body p{margin:0 0 1.5em}.post-body p:last-child{margin-bottom:0}.post-body h2,.post-body h3,.post-body h4{font-weight:600;line-height:1.45;letter-spacing:-.005em}.post-body h2{margin:2.6em 0 .9em;font-size:1.32rem}.post-body h3{margin:2.2em 0 .7em;font-size:1.1rem}.post-body h4{margin:2em 0 .6em;font-size:1rem}.post-body h2+p,.post-body h3+p,.post-body h4+p{margin-top:0}.post-body a{color:var(--link);text-decoration:none;transition:color .15s ease}.post-body a:hover{color:var(--link-hover);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.post-body strong,.post-body b{font-weight:600}.post-body blockquote{margin:1.9em 0;padding:.1em 0 .1em 1.1em;border-left:3px solid var(--hairline);color:var(--text-2)}.post-body blockquote p{margin-bottom:.8em}.post-body blockquote p:last-child{margin-bottom:0}.post-body ul,.post-body ol{margin:1.4em 0;padding-left:1.5em}.post-body li{margin:.45em 0;padding-left:.25em}.post-body li::marker{color:var(--text-3)}.post-body li>p{margin-bottom:.4em}.post-body :not(pre)>code{background:var(--bg-soft);border-radius:var(--r-xs);padding:.14em var(--r-xs);font-family:var(--mono);font-size:.86em}.post-body pre{margin:1.9em 0;padding:var(--r-md);background:var(--bg-soft);border-radius:var(--r-md);overflow-x:auto;font-size:.875rem;line-height:1.75;-webkit-overflow-scrolling:touch}.post-body pre code{display:block;background:none;padding:0;border-radius:0;font-family:var(--mono);font-size:inherit;white-space:pre}.post-body table{width:100%;margin:2em 0;border-collapse:collapse;font-size:.95em}.post-body th{text-align:left;font-weight:600;padding:.6em .9em .55em 0;border-bottom:1.5px solid var(--text)}.post-body td{padding:.6em .9em .6em 0;border-bottom:1px solid var(--hairline);vertical-align:top}.post-body tbody tr:last-child td{border-bottom:0}.post-body hr{border:0;border-top:1px solid var(--hairline);margin:3.4em 0}.post-body img{display:block;margin:2em auto;border-radius:var(--r-md)}.post-body ul.contains-task-list{list-style:none;padding-left:.2em}.post-body input[type=checkbox]{accent-color:var(--link);margin-right:.6em}.post-body .hljs{color:var(--text);background:transparent}.post-body .hljs-comment,.post-body .hljs-quote,.post-body .hljs-meta{color:var(--text-3);font-style:italic}.post-body .hljs-keyword,.post-body .hljs-selector-tag,.post-body .hljs-literal,.post-body .hljs-type,.post-body .hljs-doctag{color:var(--text);font-weight:600}.post-body .hljs-string,.post-body .hljs-regexp,.post-body .hljs-number,.post-body .hljs-symbol,.post-body .hljs-bullet,.post-body .hljs-attr,.post-body .hljs-attribute,.post-body .hljs-template-variable,.post-body .hljs-variable{color:var(--hl-blue)}.post-body .hljs-title,.post-body .hljs-title.function_,.post-body .hljs-section{color:var(--text);font-weight:500}.post-body .hljs-built_in,.post-body .hljs-name,.post-body .hljs-tag{color:var(--text)}.post-body .hljs-emphasis{font-style:italic}.post-body .hljs-strong{font-weight:600}.post__pager{margin-top:3.6rem;border-top:1px solid var(--hairline);display:flex;gap:2rem}.pager-item{flex:1;min-width:0;padding:1.5rem 0 .2rem;text-decoration:none;color:var(--text)}.pager-item:hover .pager-item__title{color:var(--link)}.pager-item--right{text-align:right}.pager-item--empty{pointer-events:none;color:var(--text-3)}.pager-item__label{display:block;font-size:.8rem;color:var(--text-3);margin-bottom:.4rem;letter-spacing:.04em}.pager-item__title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.98rem;font-weight:500;line-height:1.55;transition:color .15s ease}.archive{padding-top:clamp(2.4rem,9vh,5rem)}.archive-hero{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg);padding:var(--r-lg);margin-bottom:2.6rem;box-shadow:var(--card-shadow)}.archive-hero__title{--lh: 1.3;margin:calc((1 - var(--lh)) / 2 * 1em - var(--ink-gap)) 0 0;font-size:clamp(1.9rem,5vw,2.6rem);font-weight:600;line-height:var(--lh);letter-spacing:-.01em}.archive-hero__desc{margin:.7rem 0 0;color:var(--text-2);font-size:.98rem}.archive-hero__stats{display:flex;flex-wrap:wrap;gap:2.4rem;margin:1.7rem 0 0}.archive-stat{display:flex;flex-direction:column;gap:.2rem}.archive-stat dt{font-size:.78rem;color:var(--text-3);letter-spacing:.04em}.archive-stat dd{margin:0;font-size:1.9rem;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}.archive-group-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--card-shadow)}.archive-group-card+.archive-group-card{margin-top:2rem}.archive-group-card__head{display:flex;align-items:baseline;gap:.6rem;padding:calc(var(--r-lg) - (1.4 - 1) / 2 * 1.12rem - 1px) var(--r-lg) calc(var(--r-lg) * .5)}.archive-group-card__name{margin:0;font-size:1.12rem;font-weight:600;line-height:1.4}.archive-group-card__count{font-size:.8rem;color:var(--text-3);font-weight:400}.archive-rows{margin:0;padding:0 0 7px;list-style:none}.archive-row__link{display:flex;align-items:baseline;gap:1.2rem;padding:calc(var(--r-lg) * .5) var(--r-lg);color:var(--text);text-decoration:none;border-radius:var(--r-md);transition:background .15s ease}.archive-row__link:hover{background:var(--row-hover-bg)}.archive-row__title{flex:1;min-width:0;font-weight:500;font-size:1rem;line-height:1.5;transition:color .16s ease}.archive-row__link:hover .archive-row__title{color:var(--link)}.archive-row__meta{flex:none;display:flex;align-items:baseline;gap:.5rem;color:var(--text-3);font-size:.78rem}.archive-row__date{order:2;flex:none;color:var(--text-3);font-size:.84rem;font-variant-numeric:tabular-nums}.archive-row__tag{background:var(--chip-bg);color:var(--text-2);border-radius:var(--r-xs);padding:.16em var(--r-xs);font-size:.7rem;line-height:1.5}.archive-row__link:focus-visible{outline:2px solid var(--link);outline-offset:-2px}.archive-empty{padding:2.4rem 0;color:var(--text-2)}.columns{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));gap:1.2rem}.column-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg);box-shadow:var(--card-shadow);transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.column-card:hover{border-color:var(--card-border-hover);transform:translateY(-3px);box-shadow:var(--card-shadow-hover)}.column-card__link{display:flex;flex-direction:column;height:100%;padding:var(--r-lg);color:var(--text);text-decoration:none}.column-card__series{--lh: 1.4;margin:calc((1 - var(--lh)) / 2 * 1em - var(--ink-gap)) 0 0;display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;font-size:.78rem;line-height:var(--lh);color:var(--text-3)}.column-card__count{font-variant-numeric:tabular-nums}.column-card__title{--lh: 1.4;margin:.35rem 0 0;font-size:1.16rem;font-weight:600;line-height:var(--lh);transition:color .16s ease}.column-card:hover .column-card__title{color:var(--link)}.column-card__excerpt{margin:.5rem 0 0;color:var(--text-2);font-size:.9rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:3.2em;flex:none}.column-card__foot{margin:auto 0 0;padding-top:.9rem;color:var(--text-3);font-size:.78rem;font-variant-numeric:tabular-nums}.home-section+.home-section{margin-top:3rem}.home-section__title{--lh: 1.35;margin:0 0 1rem;font-size:1.06rem;font-weight:600;line-height:var(--lh);color:var(--text-2)}.archive-posts{margin-top:3.2rem}.archive-section-title{--lh: 1.35;margin:0 0 1rem;font-size:1.06rem;font-weight:600;line-height:var(--lh);color:var(--text-2)}.volume__head{margin-bottom:1.6rem}.volume__series,.note__series{margin:0;display:flex;align-items:baseline;gap:.5rem;color:var(--text-3);font-size:.82rem}.volume__title,.note__title{--lh: 1.3;margin:.3rem 0 0;font-size:clamp(1.7rem,4.6vw,2.4rem);font-weight:600;line-height:var(--lh);letter-spacing:-.01em}.volume__meta,.note__meta{margin:.7rem 0 0;color:var(--text-2);font-size:.88rem;font-variant-numeric:tabular-nums}.volume__intro{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg);padding:var(--r-lg);box-shadow:var(--card-shadow)}.volume__intro-body>*:first-child{--lh: 1.55;margin-top:calc((1 - var(--lh)) / 2 * 1em - var(--ink-gap))}.volume__intro-body>*:last-child{margin-bottom:0}.note-list{margin:1.6rem 0 0;padding:0 0 7px;list-style:none;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--r-lg);box-shadow:var(--card-shadow)}.note-row__link{display:flex;align-items:baseline;gap:.9rem;padding:10px var(--r-lg);color:var(--text);text-decoration:none;border-radius:var(--r-md);transition:background .15s ease}.note-row__link:hover{background:var(--row-hover-bg)}.note-row__order{flex:none;min-width:1.9em;color:var(--text-3);font-family:var(--mono);font-size:.8rem;font-variant-numeric:tabular-nums}.note-row__title{flex:1;min-width:0;font-weight:500;font-size:1rem;line-height:1.5;transition:color .16s ease}.note-row__link:hover .note-row__title{color:var(--link)}.note-row__date{flex:none;color:var(--text-3);font-size:.8rem;font-variant-numeric:tabular-nums}.note__order{font-family:var(--mono);color:var(--text-2)}.note__loading{padding:2rem 0;color:var(--text-3);font-size:.9rem}.post-body .math-tex[data-display="1"]{display:block;margin:1.2rem 0;overflow-x:auto;overflow-y:hidden}.post-body .katex{font-size:1.04em}.post-body .katex-display{margin:0}.post-body .katex-display>.katex{white-space:normal}.post-body mark{background:color-mix(in srgb,var(--link) 18%,transparent);color:inherit;border-radius:var(--r-xs);padding:0 .2em}.post-body .math-block{margin:1.2rem 0;overflow-x:auto}@media(max-width:760px){.columns{grid-template-columns:1fr}.column-card__excerpt{-webkit-line-clamp:3;height:calc(3 * 1.6 * 1em)}.note-row__link{flex-wrap:wrap;gap:.3rem .8rem}.note-row__title{flex:1 1 100%;order:-1}.note-list{padding-bottom:3px}}.notfound__code{margin:0;font-size:clamp(3.5rem,10vw,6rem);font-weight:600;line-height:1;letter-spacing:-.02em}.notfound__text{margin:1.2rem 0 2.2rem;color:var(--text-2)}.notfound__back{color:var(--link);text-decoration:none}.notfound__back:hover{text-decoration:underline;text-underline-offset:4px}.masthead__title,.masthead__tagline{animation:rise .6s cubic-bezier(.22,1,.36,1) both}.masthead__tagline{animation-delay:.08s}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(max-width:899px){.site-frame{width:min(100% - 2 * var(--gutter),var(--measure-phone))}.dock{bottom:max(10px,env(safe-area-inset-bottom,0px));gap:.6rem;padding:0 .55rem;--dock-h: 3.52rem}.apptabbar{padding:.18rem}.apptabbar__tabs{--tab-radius: var(--r-pill);--tab-my: .08rem}.apptabbar__tab{padding:.3rem 0}.apptabbar__icon-wrap{width:2.4rem;height:2.4rem}.apptabbar__icon{width:1.35rem;height:1.35rem}.apptabbar__label{font-size:.68rem}.search-island svg{width:1.2rem;height:1.2rem}}@media(max-width:760px){html{font-size:16px}.post-card__link{padding:var(--r-lg)}.post-card{min-height:10.5rem}.post-card__title{font-size:1rem}.post-card__summary{--lh-sum: 1.5;margin:.38rem 0 .66rem;font-size:.85rem}.post-card__meta{margin:auto 0 0;font-size:.72rem}.masthead{padding-top:2.6rem}.archive-row__link{flex-wrap:wrap;gap:.35rem .9rem}.archive-row__title{flex:1 1 100%}.archive-row__meta{flex-basis:100%;flex-wrap:wrap}.archive-row__date{order:-1}.post__pager{flex-direction:column;gap:0}.pager-item--right{text-align:left;border-top:1px solid var(--hairline)}}@keyframes rise-soft{0%{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}@keyframes pop-in{0%{opacity:.5;scale:.85}to{opacity:1;scale:1}}@keyframes dock-in{0%{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}@keyframes panel-in{0%{opacity:0;scale:.98;translate:0 6px}to{opacity:1;scale:1;translate:0 0}}@keyframes icon-in{0%{opacity:0;rotate:-60deg;scale:.8}to{opacity:1;rotate:0deg;scale:1}}.page-enter{animation:rise-soft var(--dur-slow) var(--ease-soft) both}.post-card{animation:rise-soft var(--dur-slow) var(--ease-soft) both;animation-delay:calc(var(--i, 0) * 60ms)}.reveal{opacity:0;translate:0 14px;transition:opacity var(--dur-slow) var(--ease-soft),translate var(--dur-slow) var(--ease-soft);transition-delay:calc(var(--i, 0) * 70ms)}.reveal.is-visible{opacity:1;translate:0 0}.apptabbar__tab.is-active .apptabbar__icon-wrap{animation:pop-in .32s var(--ease-soft)}.apptabbar__icon-wrap{transition:translate var(--dur-fast) ease,scale var(--dur-fast) ease}.apptabbar__tab:hover .apptabbar__icon-wrap{translate:0 -1px}.search-panel{animation:panel-in .22s var(--ease-soft) both}.search-panel__item{animation:rise-soft .3s var(--ease-soft) both;animation-delay:calc(var(--i, 0) * 25ms)}.theme-toggle__icon{display:grid;place-items:center;width:100%;height:100%;animation:icon-in .32s var(--ease-soft) both}.pager-item__title{transition:color var(--dur-fast) ease,translate var(--dur-fast) ease}.pager-item:hover .pager-item__title{translate:0 -1px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1!important;translate:none!important;transition:none!important}}
