@font-face{font-family:Courier Prime;src:url(/fonts/courier-prime-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+??,U+2010-2027,U+20AC}@font-face{font-family:Courier Prime;src:url(/fonts/courier-prime-400-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap;unicode-range:U+??,U+2010-2027,U+20AC}@font-face{font-family:Courier Prime;src:url(/fonts/courier-prime-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+??,U+2010-2027,U+20AC}:root{color-scheme:light;--bg:#fff;--bg-elevated:#f5f5f7;--ink:#1d1d1f;--ink-soft:#6e6e73;--line:#d2d2d7;--hairline:color-mix(in srgb, var(--ink) 8%, transparent);--accent:#0071e3;--accent-hover:#0077ed;--accent-ink:#fff;--badge:#e8e8ed;--font:"Courier Prime", "Noto Serif SC", "Songti SC", "STSong", SimSun, serif;--font-mono:"Courier Prime", "Noto Serif SC", "Songti SC", "STSong", SimSun, serif;--radius:18px;--ease:.2s ease}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#000;--bg-elevated:#1d1d1f;--ink:#f5f5f7;--ink-soft:#a1a1a6;--line:#424245;--hairline:#ffffff1f;--accent:#2997ff;--accent-hover:#47a3ff;--accent-ink:#fff;--badge:#2c2c2e}}:root[data-theme=dark]{color-scheme:dark;--bg:#000;--bg-elevated:#1d1d1f;--ink:#f5f5f7;--ink-soft:#a1a1a6;--line:#424245;--hairline:#ffffff1f;--accent:#2997ff;--accent-hover:#47a3ff;--accent-ink:#fff;--badge:#2c2c2e}:root[data-theme=light]{color-scheme:light}*,:before,:after{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);min-height:100vh;color:var(--ink);font-family:var(--font);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.75;overflow-x:clip}body.menu-open{overflow:hidden}img{max-width:100%;height:auto}a{color:var(--accent);transition:color var(--ease), background-color var(--ease);text-decoration:none}a:hover{text-underline-offset:.18em;text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.skip{left:1rem;top:calc(.5rem + env(safe-area-inset-top));background:var(--accent);color:var(--accent-ink);z-index:60;border-radius:999px;padding:.4rem .75rem;position:absolute;transform:translateY(-150%)}.skip:focus{transform:none}.shell{width:min(61rem, calc(100% - 40px - env(safe-area-inset-left) - env(safe-area-inset-right)));margin-inline:auto}.shell-wide{width:min(92rem, calc(100% - 48px - env(safe-area-inset-left) - env(safe-area-inset-right)))}.site-header{z-index:40;background:var(--bg);border-bottom:.5px solid var(--hairline);padding-top:env(safe-area-inset-top);position:sticky;top:0}.header-bar{align-items:center;gap:.5rem;height:52px;display:flex}.header-tools{align-items:center;gap:.15rem;margin-left:auto;display:flex}.brand{min-width:0;color:inherit;align-items:center;gap:.55rem;text-decoration:none;display:flex}.brand:hover{text-decoration:none}.mark{background:var(--accent);width:1.75rem;height:1.75rem;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;font-size:.85rem;font-weight:600;line-height:1;display:grid}.brand-name{letter-spacing:0;font-size:1.05rem;font-weight:600;line-height:1.2}.nav-desktop{display:none}.menu-button{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;display:grid}.menu-button svg{width:1.25rem;height:1.25rem}.menu-button .icon-close,.menu-button[aria-expanded=true] .icon-open{display:none}.menu-button[aria-expanded=true] .icon-close{display:block}.nav-sheet{z-index:35;inset:calc(52px + env(safe-area-inset-top)) 0 0 0;background:var(--bg);padding:.35rem 0 calc(1.25rem + env(safe-area-inset-bottom));position:fixed;overflow:auto}.nav-sheet[hidden]{display:none}.nav-sheet .shell{background:var(--bg-elevated);border-radius:14px;margin-top:.75rem;padding:.15rem 0}.nav-sheet a{min-height:52px;color:var(--ink);letter-spacing:0;align-items:center;padding:0 18px;font-size:1.35rem;font-weight:600;text-decoration:none;display:flex;position:relative}.nav-sheet a:not(:last-child):after{content:"";background:var(--hairline);height:.5px;position:absolute;bottom:0;left:18px;right:18px}.nav-sheet a[aria-current=page]{color:var(--accent)}.nav-desktop a{color:var(--ink-soft);text-decoration:none}.nav-desktop a:hover,.nav-desktop a[aria-current=page]{color:var(--ink);text-decoration:none}.nav-desktop a[aria-current=page]{font-weight:600}.theme-toggle{width:44px;height:44px;color:var(--ink);cursor:pointer;transition:background-color var(--ease);background:0 0;border:0;border-radius:999px;place-items:center;display:grid}.theme-toggle:hover{background:var(--bg-elevated)}.theme-toggle svg{width:1.05rem;height:1.05rem}.icon-sun,:root[data-theme=dark] .icon-moon{display:none}:root[data-theme=dark] .icon-sun{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .icon-moon{display:none}:root:not([data-theme=light]) .icon-sun{display:block}}main{padding:1.35rem 0 2.5rem}.site-footer{border-top:.5px solid var(--hairline);padding:.85rem 0 calc(.9rem + env(safe-area-inset-bottom));color:var(--ink-soft);font-size:.75rem;line-height:1.45}.site-footer .shell{flex-wrap:wrap;align-items:baseline;gap:.35rem 1.25rem;display:flex}.site-footer p{margin:0}.site-footer a{color:var(--ink-soft)}.site-footer a:hover{color:var(--accent)}.footer-note{flex-basis:100%}.home{gap:2rem;display:grid}.hero h1,.page-header h1,.entry-header h1,.section-heading h2,.not-found h1{letter-spacing:0;font-weight:700;line-height:1.2}.hero h1,.page-header h1,.entry-header h1,.not-found h1{margin:.4rem 0 .85rem}.hero h1{margin-bottom:.45rem;font-size:clamp(2rem,5vw + 1rem,5rem)}.role,.lede,.page-header p,.entry-meta{margin:0}.role{max-width:36rem;color:var(--ink);letter-spacing:0;font-size:1.125rem;font-weight:600;line-height:1.75}.lede{max-width:40rem;color:var(--ink-soft);margin-top:.7rem;font-size:1rem;line-height:1.6}.todo-flag{letter-spacing:0;color:var(--accent);margin:0;font-size:.8125rem;font-weight:600}.home-sections{display:none}.home-sections a{min-height:44px;color:var(--ink);letter-spacing:0;align-items:center;padding:0 16px;font-weight:600;text-decoration:none;display:flex;position:relative}.home-sections a:not(:last-child):after{content:"";background:var(--hairline);height:.5px;position:absolute;bottom:0;left:16px;right:16px}.home-sections a:hover{color:var(--accent);text-decoration:none}.section-heading{margin-bottom:1.15rem}.section-heading h2,.page-header h1{font-size:clamp(1.75rem,3vw + 1rem,2.75rem)}.section-heading h2{margin:0}.post-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.post-list article{background:var(--bg-elevated);border-radius:var(--radius);padding:.95rem 1rem .9rem}.post-kicker,.kicker{color:var(--accent);flex-wrap:wrap;align-items:center;gap:.4rem .55rem;margin:0 0 .35rem;font-size:.8125rem;font-weight:600;display:flex}.post-kicker a,.kicker a{color:inherit;text-decoration:none}.post-kicker a:hover,.kicker a:hover{text-underline-offset:.18em;text-decoration:underline}.post-list h3{letter-spacing:0;margin:0;font-size:1.35rem;font-weight:600;line-height:1.35}.post-list h3 a{min-height:44px;color:inherit;align-items:center;text-decoration:none;display:flex}.post-list h3 a:hover{color:var(--accent)}.desc{color:var(--ink-soft);margin:.4rem 0 .55rem;font-size:.975rem;line-height:1.5}.post-list time,.entry-meta{color:var(--ink-soft);font-size:.8125rem}.reading-filters{gap:.65rem;margin:0 0 1.15rem;display:grid}.filter-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.filter-label{min-width:2.5rem;color:var(--ink-soft);flex:none;font-size:.8125rem;font-weight:600}.filter-row button{background:var(--bg-elevated);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border:0;border-radius:980px;padding:0 .95rem;font-size:.875rem}.filter-row button.is-active{background:var(--accent);color:var(--accent-ink)}.reading-alt-title,.reading-byline{color:var(--ink-soft);margin:.25rem 0 0}.reading-byline{flex-wrap:wrap;gap:.35rem .7rem;font-size:.975rem;display:flex}.reading-actions{margin:.35rem 0 0}.reading-actions.has-zh{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.85rem;display:flex}.reading-actions.has-zh .pill-button{flex:none;margin-top:0}.pill-button{background:var(--accent);min-height:44px;color:var(--accent-ink);border-radius:980px;justify-content:center;align-items:center;margin-top:.85rem;padding:.55rem 1.2rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.pill-button:hover{background:var(--accent-hover);color:var(--accent-ink);text-decoration:none}.alt-links{margin-top:1.15rem}.alt-links ul{margin:.15rem 0 0;padding:0;list-style:none}.alt-links a{align-items:center;min-height:44px;display:inline-flex}.badge{background:var(--badge);color:var(--ink-soft);border-radius:999px;padding:.08rem .45rem;font-size:.75rem;font-weight:500;display:inline-block}.sample-banner,.todo-box,.visa-cta,.callout{background:var(--bg-elevated);border-radius:var(--radius)}.sample-banner{color:var(--ink-soft);margin:1.35rem 0 0;padding:.9rem 1.05rem;font-size:.9375rem;line-height:1.5}.page-header{max-width:40rem;margin-bottom:1.15rem}.page-header p{color:var(--ink-soft);margin-top:.75rem;font-size:1.125rem;line-height:1.5}.article-layout.has-series{display:block}.series-panel-desktop{display:none}.series-panel-mobile{background:var(--bg-elevated);border-radius:14px;margin:0 0 1.25rem}.series-panel-mobile summary{cursor:pointer;align-items:center;min-height:44px;padding:0 16px;font-weight:600;display:flex}.series-panel ol{margin:0;padding:0 16px .75rem;list-style:none}.series-panel li{border-left:.5px solid var(--hairline);padding:.35rem 0 .55rem .85rem}.series-panel li.is-current{border-left-color:var(--accent)}.series-panel a{color:inherit;text-decoration:none;display:block}.series-panel li.is-current a{color:var(--accent);font-weight:600}.series-panel time{color:var(--ink-soft);font-size:.75rem;line-height:1.4;display:block}.series-panel li.is-current time{color:var(--accent)}.series-label{color:var(--ink-soft);margin:0 0 .65rem;font-size:.8125rem;font-weight:600}.entry{max-width:40rem}.article-frame .entry{max-width:none}.entry-header{margin-bottom:1.25rem}.entry-header h1{font-size:clamp(2rem,2.5vw + 1.15rem,3.25rem)}.content{overflow-wrap:break-word;font-size:17px;line-height:1.75}.content code,.content pre,.content kbd{font-family:Courier Prime,ui-monospace,monospace}.content>:first-child{margin-top:0}.content img{border-radius:12px;width:100%;max-width:100%;height:auto;display:block}.content .mermaid-diagram{background:#fff;border-radius:12px;margin:1.25rem 0;padding:.75rem .5rem;overflow-x:auto}.content .mermaid-diagram svg{width:100%;max-width:100%;height:auto;display:block}.ios-body .mermaid-diagram{cursor:zoom-in;max-width:100%;overflow-x:auto}.ios-body .mermaid-diagram foreignObject,.ios-body .mermaid-diagram .nodeLabel,.ios-body .mermaid-diagram .label,.ios-body .mermaid-diagram .edgeLabel{overflow:visible}svg .glyph{fill:#333!important;stroke:none!important}svg rect[data-slot]{fill:none!important;stroke:none!important}.ios-body .mermaid-diagram svg{width:var(--diagram-min,100%);min-width:var(--diagram-min,100%);height:auto;margin-inline:auto;display:block;max-width:none!important}.ios-body img{cursor:zoom-in}.article-frame{min-width:0;display:block}.article-frame-main{min-width:0}.article-toc{margin:0 0 1.25rem}.toc-toggle{border:.5px solid var(--line);background:var(--bg-elevated);width:100%;color:var(--ink);font:inherit;text-align:left;border-radius:12px;padding:.55rem .85rem}.article-toc nav{margin-top:.55rem;padding:.35rem 0;display:none}.article-toc nav.is-open{gap:.2rem;display:grid}.article-toc a{color:var(--ink-soft);overflow-wrap:break-word;padding:.2rem 0;font-size:.875rem;line-height:1.4;text-decoration:none;display:block}.article-toc a.is-sub{padding-left:.9rem}.article-toc a.is-current{color:var(--accent)}.article-frame-main h2,.article-frame-main h3{scroll-margin-top:calc(52px + env(safe-area-inset-top) + .75rem)}.ios-head h1{margin:0 0 .6rem;font-size:clamp(1.7rem,2vw + 1.1rem,2.6rem);line-height:1.25}.ios-kicker,.ios-role{color:var(--ink-soft);margin:.2rem 0}.content ul.ios-tags{flex-wrap:wrap;align-items:center;gap:.45rem .4rem;max-width:none;margin:.9rem 0 0;padding:0;list-style:none;display:flex}.content ul.ios-tags li,.content ul.ios-tags li+li{background:var(--badge);min-width:0;max-width:100%;color:var(--ink);white-space:normal;overflow-wrap:break-word;border-radius:999px;align-items:center;margin:0;padding:.15rem .7rem;font-size:.8125rem;line-height:1.45;display:inline-flex}.review-flag{color:#1d1d1f;background:#ffe08a;border-radius:.2em;padding:0 .15em}.ios-body .mine,.ios-body mark.mine{color:var(--accent);background:0 0;font-weight:600}.case-wip{color:var(--ink-soft)}.wip-tag{background:var(--badge);color:var(--ink-soft);vertical-align:.05em;border-radius:999px;margin-left:.4rem;padding:.02rem .45rem;font-size:.75rem;line-height:1.6;display:inline-block}.ios-body>p,.ios-body>ul:not(.ios-tags),.ios-body>ol,.ios-body>blockquote,.ios-body>h2,.ios-body>h3,.ios-body>table,.ios-body>pre,.ios-body>.astro-code{max-width:100%}@media (width<=959px){.article-frame:not(.has-toc) .article-side,.article-frame .series-panel-desktop{display:none}.article-frame .series-panel-mobile{display:block}}@media (width>=960px){.article-frame{grid-template-columns:14rem minmax(0,1fr);align-items:start;gap:2rem;display:grid}.article-frame-main{grid-column:2}.article-side{grid-column:1;min-width:0;max-height:calc(100vh - 6rem);position:sticky;top:4.75rem;overflow:auto}.article-toc{margin:0}.article-frame .series-panel-desktop{margin-bottom:1.25rem;display:block;position:static}.article-frame .series-panel-mobile,.toc-toggle{display:none}.article-toc nav,.article-toc nav.is-open{margin:0;display:grid}}@media (width<=959px){.ios-body>p,.ios-body li{overflow-wrap:break-word}}.ios-lightbox{z-index:80;background:#000000eb;position:fixed;inset:0}.ios-lightbox[hidden]{display:none}.ios-lightbox-stage{touch-action:none;width:100%;height:100%;overflow:hidden}.ios-lightbox-canvas{transform-origin:0 0;box-sizing:border-box;opacity:1;background:#fff;border-radius:12px;width:max-content;max-width:none;padding:.75rem .5rem}.ios-lightbox-canvas svg,.ios-lightbox-canvas img{opacity:1;background:#fff;display:block}.ios-lightbox-close{top:calc(.75rem + env(safe-area-inset-top));right:calc(.75rem + env(safe-area-inset-right));z-index:1;color:#1d1d1f;font:inherit;background:#fff;border:0;border-radius:999px;padding:.45rem .9rem;position:absolute}body.lightbox-open{overflow:hidden}.article-cover,.post-cover{object-fit:cover;object-position:center;display:block}.article-cover{aspect-ratio:16/9;border-radius:12px;width:100%;max-width:40rem;height:auto;margin:.85rem 0 0}.post-cover{aspect-ratio:3/4;border-radius:10px;width:4.5rem;height:auto;margin:0 0 .65rem}.lesson-list .post-cover{flex:none;margin:0}.content h2,.content h3{letter-spacing:0;margin:2.25rem 0 .65rem;font-weight:600;line-height:1.35}.content h2{font-size:1.5rem}.content h3{font-size:1.2rem}#zh-full,#zh-full~h3{scroll-margin-top:calc(52px + env(safe-area-inset-top) + .75rem)}.content .zh-full-note{color:var(--ink-soft);margin:.15rem 0 1.35rem;font-size:.875rem;line-height:1.65}.content .zh-full-note p{font-size:inherit;line-height:inherit;margin:.2rem 0}.content p,.content ul,.content ol,.content pre,.content table,.content blockquote{margin:.95rem 0}.content .poem-lines p:not(.chapter-back){line-height:2}.chapter-index-label{color:var(--ink-soft);margin:0 0 .35rem;font-size:.8125rem;font-weight:600}.chapter-index{width:min(100%,360px,100dvh - 400px);scroll-margin-top:calc(52px + env(safe-area-inset-top) + .75rem);grid-template-columns:repeat(9,minmax(0,1fr));gap:4px;margin:0 0 1.15rem;display:grid}.chapter-index a{aspect-ratio:1;background:var(--bg-elevated);min-width:0;min-height:0;color:var(--ink);border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:.8125rem;line-height:1;text-decoration:none;display:flex}.content .chapter-index a,.chapter-index a:hover{color:var(--ink);text-decoration:none}.chapter-index a:hover{color:var(--accent)}.entry:has(.chapter-index) .entry-header{margin-bottom:.65rem}.entry:has(.chapter-index) .alt-links{margin-top:.55rem}.content h3[id^=ch-]{scroll-margin-top:calc(52px + env(safe-area-inset-top) + .75rem)}.chapter-back{margin:.15rem 0 .35rem;font-size:.8125rem;line-height:1.4}.chapter-back a{color:var(--ink-soft)}.content ul,.content ol{padding-left:1.2rem}.content li+li{margin-top:.3rem}.content blockquote{border-left:.5px solid var(--hairline);color:var(--ink-soft);margin-left:0;padding-left:1rem}.content sup{font-size:.75em;line-height:0}.content .footnotes{border-top:.5px solid var(--hairline);color:var(--ink-soft);margin-top:2.5rem;padding-top:.35rem;font-size:.9rem}.content .footnotes ol{padding-left:1.2rem}.content .data-footnote-backref{margin-left:.2rem;text-decoration:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.content a{text-underline-offset:.16em;text-decoration:underline}.content code{font-family:var(--font-mono);background:var(--bg-elevated);border-radius:6px;padding:.12em .35em;font-size:.88em}.ios-body :not(pre)>code{background:#f0f0f3;border-radius:4px;padding:.1em .35em;font-family:ui-monospace,SFMono-Regular,Courier Prime,monospace;font-size:.9em}.ios-body mark.mine code,.ios-body .mine code{color:var(--accent);font-weight:600}:root[data-theme=dark] .ios-body :not(pre)>code{background:#2c2c2e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ios-body :not(pre)>code{background:#2c2c2e}}.content pre,.content .astro-code{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.code-card{border:1px solid var(--line);background:#f5f5f7;border-radius:12px;margin:.95rem 0;overflow:hidden}.code-card-bar{border-bottom:1px solid var(--line);min-height:2rem;color:var(--ink-soft);background:#ebebf0;justify-content:space-between;align-items:center;gap:.75rem;padding:.2rem .55rem .2rem .85rem;font-size:.75rem;line-height:1.4;display:flex}.code-card-copy{appearance:none;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.15rem .5rem}.code-card-copy:hover,.code-card-copy:focus-visible{color:var(--ink);background:#0000000f}.content pre{border:1px solid var(--line);background:#f5f5f7;border-radius:12px;padding:1rem 1.05rem;line-height:1.55}pre.astro-code{background-color:#f5f5f7!important}.code-card pre.astro-code{border:0;border-radius:0;margin:0}pre.astro-code span{background-color:#0000!important}:root[data-theme=dark] .code-card,:root[data-theme=dark] .code-card pre.astro-code,:root[data-theme=dark] pre.astro-code{background:#24292e;border-color:#424245;background-color:#24292e!important}:root[data-theme=dark] .code-card-bar{background:#1c1c1e;border-bottom-color:#424245}:root[data-theme=dark] .code-card-copy:hover,:root[data-theme=dark] .code-card-copy:focus-visible{background:#ffffff14}:root[data-theme=dark] pre.astro-code span{color:var(--shiki-dark)!important;background-color:#0000!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .code-card,:root:not([data-theme=light]) .code-card pre.astro-code,:root:not([data-theme=light]) pre.astro-code{background:#24292e;border-color:#424245;background-color:#24292e!important}:root:not([data-theme=light]) .code-card-bar{background:#1c1c1e;border-bottom-color:#424245}:root:not([data-theme=light]) .code-card-copy:hover,:root:not([data-theme=light]) .code-card-copy:focus-visible{background:#ffffff14}:root:not([data-theme=light]) pre.astro-code span{color:var(--shiki-dark)!important;background-color:#0000!important}}.content pre code{background:0 0;padding:0;font-size:.85rem}.content table{border-collapse:collapse;-webkit-overflow-scrolling:touch;max-width:100%;font-size:.975rem;display:block;overflow-x:auto}.content thead,.content tbody{border-collapse:collapse;width:max-content;min-width:100%;display:table}.content tr{display:table-row}.content th,.content td{white-space:nowrap;display:table-cell}.series-cards{gap:.75rem;margin:0 0 1.25rem;display:grid}.series-card{background:var(--bg-elevated);border-radius:var(--radius);color:inherit;padding:.95rem 1rem 1rem;text-decoration:none;display:block}.series-card:hover{text-decoration:none}.series-card h2{margin:0;font-size:1.35rem;font-weight:600}.series-card p{color:var(--ink-soft);margin:.4rem 0 0}.lesson-kicker{margin:0 0 .45rem;font-size:.95rem;font-weight:600}.lesson-kicker a{color:var(--accent);text-decoration:none}.lesson-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.lesson-list a{background:var(--bg-elevated);border-radius:var(--radius);min-height:44px;color:inherit;flex-wrap:wrap;align-items:baseline;gap:.35rem .7rem;padding:.75rem 1rem;text-decoration:none;display:flex}.lesson-list a span{color:var(--accent);font-weight:600}.lesson-pager{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:2rem;display:grid}.lesson-pager a{background:var(--bg-elevated);min-height:44px;color:inherit;border-radius:14px;flex-direction:column;justify-content:center;gap:.15rem;padding:.7rem .9rem;text-decoration:none;display:flex}.lesson-pager a span{color:var(--ink-soft);font-size:.8125rem}.lesson-pager .is-next{text-align:right;align-items:flex-end}.content th,.content td{text-align:left;vertical-align:top;border-bottom:.5px solid var(--hairline);padding:.65rem .35rem}.content th{color:var(--ink-soft);font-size:.8125rem;font-weight:600}.tag-list{border-top:.5px solid var(--hairline);flex-wrap:wrap;gap:.4rem;margin:2.25rem 0 0;padding:1.15rem 0 0;font-size:.8125rem;list-style:none;display:flex}.tag-list li{background:var(--bg-elevated);color:var(--ink-soft);border-radius:999px;padding:.15rem .55rem}.tag-list a{color:inherit;text-decoration:none}.tag-list a:hover{color:var(--accent)}.visa-cta{margin-top:2.5rem;padding:1.5rem 1.4rem 1.45rem}.visa-cta h2{letter-spacing:0;margin:0 0 .4rem;font-size:1.5rem;font-weight:700}.visa-cta p{color:var(--ink-soft);margin:0}.visa-cta a{background:var(--accent);min-height:44px;color:var(--accent-ink);border-radius:980px;justify-content:center;align-items:center;margin-top:1.1rem;padding:.55rem 1.15rem;font-size:.95rem;text-decoration:none;display:inline-flex}.visa-cta a:hover{background:var(--accent-hover);text-decoration:none}.visa-placeholder{color:var(--ink-soft);margin-top:.65rem;font-size:.8125rem;display:block}.callout{color:var(--ink-soft);margin:1.25rem 0;padding:.95rem 1.05rem;font-size:.975rem}.about-layout{gap:.85rem;margin-top:.15rem;display:grid}.about-portrait{align-items:center;gap:.75rem;margin:0;display:flex}.about-portrait .mark{width:3.25rem;height:3.25rem;font-size:1.35rem}.about-portrait figcaption{margin-top:.55rem}.todo-box{margin-top:2.5rem;padding:1.25rem 1.3rem 1.3rem}.todo-box h2{letter-spacing:0;margin:0 0 .55rem;font-size:1.15rem;font-weight:600}.todo-box ul{color:var(--ink-soft);margin:0;padding-left:1.15rem}.empty{color:var(--ink-soft)}.not-found{max-width:36rem;padding-top:1.5rem}.not-found p{color:var(--ink-soft);font-size:1.125rem}@media (width>=900px){.menu-button{display:none}.nav-desktop{flex-wrap:nowrap;align-items:center;gap:1.15rem;margin-left:auto;font-size:.875rem;display:flex}.header-tools{margin-left:.25rem}.nav-sheet{display:none}main{padding:4.5rem 0 6rem}.home{gap:2.75rem}.role{font-size:1.35rem;line-height:1.35}.lede{margin-top:1rem;font-size:1.0625rem}.home-sections{background:0 0;border-radius:0;flex-wrap:wrap;gap:.25rem 1.5rem;display:flex;overflow:visible}.home-sections a{padding:0}.home-sections a:after{display:none}.article-layout.has-series{grid-template-columns:13.5rem minmax(0,40rem);justify-content:start;align-items:start;gap:2rem 2.5rem;display:grid}.series-panel-desktop{top:calc(52px + env(safe-area-inset-top) + 1rem);display:block;position:sticky}.series-panel-mobile{display:none}.page-header,.entry-header{margin-bottom:2rem}.post-list article{padding:1.35rem 1.4rem 1.3rem}.about-layout{grid-template-columns:auto 1fr;align-items:start;gap:2rem}.about-portrait{display:block}.about-portrait .mark{width:6.5rem;height:6.5rem;font-size:2.5rem}.site-footer{padding:1.35rem 0 2.25rem;font-size:.8125rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}
