:root{--wp-paper-0:hsl(0, 0%, 100%) /* #ffffff。 */;--wp-paper-25:hsl(60, 20%, 98%) /* #fbfbf9。 */;--wp-paper-50:hsl(60, 16%, 96%) /* #f7f7f4。 */;--wp-paper-100:hsl(60, 15%, 94%) /* #f1f1ec。 */;--wp-paper-125:hsl(80, 9%, 94%) /* #eff0ed。 */;--wp-paper-200:hsl(60, 12%, 90%) /* #e8e8e2。 */;--wp-paper-300:hsl(70, 9%, 86%) /* #dedfd9。 */;--wp-paper-400:hsl(120, 2%, 72%) /* #b5b8b5。 */;--wp-paper-500:hsl(206, 3%, 60%) /* #969a9d。 */;--wp-ink-900:hsl(200, 6%, 10%) /* #181a1b。 */;--wp-ink-800:hsl(204, 5%, 18%) /* #2c2f31。 */;--wp-ink-700:hsl(204, 5%, 24%) /* #3d4042。 */;--wp-ink-600:hsl(204, 4%, 33%) /* #52565a。 */;--wp-ink-500:hsl(204, 4%, 42%) /* #686b6d。 */;--wp-ink-450:hsl(206, 3%, 41%) /* #62676a。 */;--wp-ink-400:hsl(206, 3%, 51%) /* #7d8184。 */;--wp-well-050:hsl(204, 37%, 92%) /* #eef4f8。 */;--wp-well-100:hsl(204, 45%, 92%) /* #e3ecf2。 */;--wp-well-200:hsl(203, 33%, 85%) /* #cbdbe5。 */;--wp-well-300:hsl(204, 30%, 70%) /* #9db8ca。 */;--wp-well-400:hsl(204, 29%, 55%) /* #6b93ae。 */;--wp-well-500:hsl(206, 43%, 34%) /* #315c7c。 */;--wp-well-600:hsl(206, 43%, 28%) /* #27495f。 */;--wp-well-700:hsl(204, 43%, 21%) /* #1e394b。 */;--font-title:"PingFang SC", "Heiti SC", "Microsoft YaHei", "Noto Sans CJK SC", "Helvetica Neue", Arial, sans-serif /* 标题黑体：承担标题层级，黑体醒目 */;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif /* 正文系统默认：Win Segoe/macOS San Francisco，承担连续阅读 */;--font-functional:ui-serif, Georgia, "Noto Serif CJK SC", "Source Han Serif SC", "Songti SC", SimSun, serif /* 功能宋体：承担按钮/导航/代码等结构 */;--weight-normal:400 /* 正文与全部非标题：400，与正文一致 */;--weight-bold:600 /* 仅标题：h1~h6/展示标题，替代700 */;--text-xs:12px /* RUI 12：mono 元数据与标签最小字。 */;--text-sm:14px /* RUI 14：摘要与说明文字。 */;--text-base:16px /* RUI 16：正文基准，clamp 起点。 */;--text-lg:18px /* RUI 18：prose 移动端正文与引言。 */;--text-xl:20px /* RUI 20：卡片标题与小展示。 */;--text-2xl:24px /* RUI 24：h3 与区块标题。 */;--text-3xl:30px /* RUI 30：h2 与展示中间阶。 */;--text-4xl:36px /* RUI 36：h1 与展示阈值。 */;--text-5xl:48px /* RUI 48：display-article 封顶，对应 68→48 收敛。 */;--text-6xl:60px /* RUI 60：display-page／error 封顶，对应 80→60 收敛。 */;--text-7xl:72px /* RUI 72：display-hero 封顶，对应 92→72 收敛。 */;--step--1:clamp(0.75rem, 0.71rem + 0.2vw, 0.875rem) /* 12→14：mono 最小流动。 */;--step-0:clamp(0.875rem, 0.84rem + 0.18vw, 1rem) /* 14→16：正文字号流动。 */;--step-1:clamp(1rem, 0.96rem + 0.2vw, 1.125rem) /* 16→18：引言与摘要流动。 */;--step-2:clamp(1.125rem, 1.08rem + 0.24vw, 1.25rem) /* 18→20：卡片标题流动。 */;--step-3:clamp(1.25rem, 1.18rem + 0.35vw, 1.5rem) /* 20→24：h3 流动。 */;--step-4:clamp(1.5rem, 1.38rem + 0.55vw, 1.875rem) /* 24→30：h2 流动。 */;--step-5:clamp(1.875rem, 1.72rem + 0.78vw, 2.25rem) /* 30→36：h1 流动，封顶 36。 */;--display-hero:clamp(48px, 6vw, 72px) /* alias: was 92→72；Hero 隶书封顶 72，避免超宽溢出。 */;--display-page:clamp(36px, 5vw, 60px) /* alias: was 80→60；列表页头封顶 60。 */;--display-article:clamp(30px, 4.5vw, 48px) /* alias: was 68→48；文章题封顶 48，移动端 34 紧凑。 */;--display-error:clamp(36px, 5vw, 60px) /* alias: was 78→60；404 封顶 60，与 page 对齐。 */;--space-1:4px /* RUI 4：最小缝隙与描边补偿。 */;--space-2:8px /* RUI 8：紧凑内距与图标间隙。 */;--space-3:12px /* RUI 12：mono 标签与小组件间隙。 */;--space-4:16px /* RUI 16：shell-gutter 最小值与卡片内距。 */;--space-5:24px /* RUI 24：段落与卡片中等间距；was 20→24。 */;--space-6:32px /* RUI 32：网格 gap 与内容分区；was 24→32。 */;--space-7:48px /* RUI 48：区块外距；was 28→48，邻比 50%。 */;--space-8:64px /* RUI 64：shell-gutter 最大值与宽分区；was 32→64。 */;--space-9:96px /* RUI 96：大区块分隔；was 36→96。 */;--space-10:128px /* RUI 128：页面级留白；was 40→128。 */;--space-11:192px /* RUI 192：超大留白预留；was 44→192。 */;--space-12:256px /* RUI 256：最大留白预留；was 48→256。 */;--border-width:1px /* RUI 1px：装饰性分隔，豁免 WCAG 1.4.11。 */;--border-width-thick:2px /* RUI 2px：控件与结构性强分隔，满足 3:1 识别。 */;--opacity-1:0.05 /* RUI .05：极淡叠加。 */;--opacity-2:0.1 /* RUI .1：wash 与 line 基础。 */;--opacity-3:0.2 /* RUI .2：强调线与遮罩起点。 */;--opacity-4:0.4 /* RUI .4：中等遮罩。 */;--opacity-5:0.6 /* RUI .6：强遮罩。 */;--opacity-6:0.8 /* RUI .8：近实色覆盖。 */;--leading-tight:1 /* RUI 1：≥36px 标题紧凑，避免松散。 */;--leading-snug:1.25 /* RUI 1.25：20—30px 标题与 UI 行。 */;--leading-normal:1.5 /* RUI 1.5：正文窄量度基准。 */;--leading-loose:1.75 /* RUI 1.75：小字与宽栏舒适行距。 */;--dur-fast:150ms /* RUI 150：颜色与边框即时反馈。 */;--dur-base:250ms /* RUI 250：位移与生长类变换。 */;--dur-slow:450ms /* RUI 450：区块级慢回应，section-label 短线专用。 */;--dur-ink:700ms /* 涟漪落墨：page-header ink-settle 700ms 线性，仅装饰落墨。 */;--dur-hero:5000ms /* RUI 5000：投币编排专用，不得挪用。 */;--ease-out:cubic-bezier(0.22, 1, 0.36, 1) /* RUI ease-out：入场与反馈默认。 */;--shadow-1:0 1px 3px hsl(0 0% 0% / 0.2) /* RUI 1px3：header.is-scrolled 与按钮。 */;--shadow-2:0 4px 6px hsl(0 0% 0% / 0.2) /* RUI 4px6：下拉与悬浮卡片。 */;--shadow-3:0 5px 15px hsl(0 0% 0% / 0.2) /* RUI 5px15：中等浮层。 */;--shadow-4:0 10px 24px hsl(0 0% 0% / 0.2) /* RUI 10px24：大浮层。 */;--shadow-5:0 15px 35px hsl(0 0% 0% / 0.2) /* RUI 15px35：模态与最高抬升。 */;--radius:4px /* RUI 4：仅用于控件（代码复制按钮），全站无大圆角。 */;--radius-pill:999px /* RUI 胶囊：标签与徽标，恒定。 */;--z-backtotop:60 /* 返回顶部浮钮。 */;--z-header:90 /* 吸顶头部与导航。 */;--z-progress:100 /* 顶部阅读进度条。 */;--z-skip:200 /* 跳过导航链接，最高可达性层。 */;--texture-noise:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E") /* 豁免：data-uri 噪点纹理，opacity .32 固定纸感，无法引用变量。 */}@media(max-width:720px){:root{--font-title:var(--font-body);--font-functional:var(--font-body)}}:root{color-scheme:light;--paper:var(--wp-paper-50) /* 暖灰纸面：#f7f7f4 为页面底，承载 45em measure。 */;--surface:var(--wp-paper-0) /* 纯白抬升：#ffffff 卡片与悬停行基色，vs --paper 微抬 2%。 */;--surface-veil:color-mix(in srgb, var(--surface) 55%, transparent) /* 55% 半透明纸面：卡片悬停抬升，避免生硬色块；派生自 --surface。 */;--surface-lift:color-mix(in srgb, var(--surface) 72%, transparent) /* 72% 半透明纸面：行悬停更实，保留纸感分层。 */;--code-bg:var(--wp-paper-125) /* 代码底：#eff0ed 行内与块级代码统一底色。 */;--code-bar-bg:color-mix(in srgb, var(--wp-paper-100) 72%, transparent) /* 72% 浅灰衬底：代码块顶栏，基于 --wp-paper-100；语义封装避免组件直引原语。 */;--ink-inverse:var(--wp-paper-50) /* 反色字：#f7f7f4 深底上的暖白字，用于深色徽标。 */;--text-primary:var(--wp-ink-900) /* 主文：#181a1b 标题与正文，vs --surface 15:1。 */;--text-secondary:var(--wp-ink-500) /* 说明：#686b6d 摘要与说明，vs --surface 5.6:1。 */;--text-meta:var(--wp-ink-450) /* 元数据：#62676a mono 日期与标签，vs --surface 5.1:1。 */;--text-faint:var(--wp-paper-500) /* 弱化：#969a9d 装饰性弱文字，vs --surface 3:1 阈值内装饰豁免。 */;--border-strong:var(--wp-ink-900) /* 强分隔：#181a1b 页头／页眉底线，1.34:1 decorative／functional 靠 2px 加粗区分。 */;--border-default:var(--wp-paper-300) /* 常规分隔：#dedfd9 1.34:1 decorative，豁免 WCAG 1.4.11。 */;--border-control:var(--wp-ink-400) /* 控件描边：#7d8184 3.66:1 vs --surface #fff 达 WCAG 1.4.11 3:1；原 --wp-paper-400 2.0:1 过浅。 */;--border-muted:color-mix(in srgb, var(--border-default) 70%, transparent) /* 70% 极淡分隔：移动端导航项分隔，派生自 --border-default。 */;--accent:var(--wp-well-500) /* 主强调：#315c7c 链接与焦点环。 */;--accent-strong:var(--wp-well-600) /* 加深强调：#27495f hover 态。 */;--accent-deep:var(--wp-well-700) /* 深强调：#1e394b 按压与深色强调，reserved 逐步收敛硬编码加深。 */;--accent-tint:var(--wp-well-100) /* 浅衬底：#e3ecf2 极浅蓝，reserved 供未来卡片 shallow 态。 */;--accent-wash:color-mix(in srgb, var(--accent) 8%, transparent) /* 8% 水洗：标签悬停与当前页 wash，极淡避免喧宾。 */;--accent-line:color-mix(in srgb, var(--accent) 18%, transparent) /* 18% 强调线：装饰图形与未激活下划线。 */;--selection-bg:var(--wp-well-200) /* 选区底：#cbdbe5 vs --text-primary 满足 4.5:1。 */;--focus-ring-color:var(--accent) /* 焦点环：等同 --accent，统一井水蓝。 */;--tap-highlight:color-mix(in srgb, var(--accent) 14%, transparent) /* 14% 触屏高亮：reset.css --tap-highlight 轻触反馈。 */;--overlay-fab:color-mix(in srgb, var(--paper) 92%, transparent) /* 92% 半透纸面：悬浮按钮与 FAB，近实色保留纸感。 */;--overlay-scrim:color-mix(in srgb, var(--paper) 40%, transparent) /* 40% 遮罩：底部弹层 scrim，透底内容。 */;--backdrop-soft:color-mix(in srgb, var(--paper) 2%, transparent) /* 2% 极淡底：导航遮罩，仅桌面 backdrop-filter 配合。 */;--code-row-alt:color-mix(in srgb, var(--code-bg) 50%, transparent) /* 50% 交替行：表格偶数行，基于 --code-bg。 */;--scroll-fade:color-mix(in srgb, var(--border-default) 45%, transparent) /* 45% 滚动阴影：横向表格边缘 fade，基于 --border-default。 */;--shell-max:1180px /* 版心最大宽：1180，超出居中。 */;--shell-gutter:clamp(16px, 5vw, 64px) /* 版心边距：16→64 流式，RUI 16／64 锚点。 */;--measure:720px /* 正文量度：720≈45em，45—75 字符舒适区。 */;--measure-wide:920px /* 宽量度：920 文章头与 Hero 宽容器。 */;--header-h:82px /* 头高桌面：82，吸顶与锚点偏移基准。 */;--header-h-mobile:56px /* 头高移动端：56，触控收紧。 */;--tap-min:44px /* 最小触控：44，WCAG 2.5.5 足够点击区。 */;--header-bg:color-mix(in srgb, var(--paper) 88%, transparent) /* 88% 纸面：吸顶头部毛玻璃底，滚动后叠 --shadow-1。 */}[data-theme=dark]{color-scheme:dark;--paper:hsl(206, 11%, 9%) /* #14171a。 */;--surface:hsl(207, 12%, 13%) /* #1c2126。 */;--code-bg:hsl(206, 14%, 8%) /* #12171c。 */;--code-bar-bg:hsl(0 0% 100% / 0.05) /* 豁免：5% 白叠加暗色顶栏微亮，无法走 --wp-*，vs --code-bg 区分。 */;--ink-inverse:hsl(206, 11%, 9%) /* #14171a。 */;--text-primary:hsl(44, 13%, 91%) /* #e9e7e0：暖纸白主文，vs --surface 12:1。 */;--text-secondary:hsl(204, 6%, 70%) /* #b0b3b6：次级说明，vs --surface 7:1。 */;--text-meta:hsl(206, 6%, 57%) /* #8b9298：元数据 mono，vs --surface 5.15:1 达 4.5:1。 */;--text-faint:hsl(206, 6%, 37%) /* #565f66：弱化装饰，vs --surface 装饰豁免。 */;--border-strong:hsl(40, 8%, 81%) /* #d0cec6：强分隔提亮，vs 深底 9:1。 */;--border-default:hsl(207, 11%, 19%) /* #2e343a：常规分隔深灰，decorative。 */;--border-control:hsl(206, 6%, 57%) /* #8b9298：5.15:1 vs --surface #1c2126 契合 WCAG 1.4.11 3:1；原 #3d444b 仅 1.64:1 过暗。 */;--accent:var(--wp-well-400) /* 提亮主强调：#6b93ae 暗底可辨，原 500 过暗。 */;--accent-strong:var(--wp-well-300) /* 提亮加深：#9db8ca hover 态。 */;--accent-deep:var(--wp-well-500) /* 回落深强调：#315c7c 按压态。 */;--accent-tint:hsl(206, 29%, 16%) /* #1d2b36：深蓝衬底，vs --surface 微差。 */;--accent-wash:color-mix(in srgb, var(--accent) 10%, transparent) /* 10% 暗色水洗：比亮色 8% 略浓以补对比。 */;--accent-line:color-mix(in srgb, var(--accent) 26%, transparent) /* 26% 暗色强调线：比亮色 18% 略浓。 */;--selection-bg:hsl(205, 32%, 25%) /* #274156：暗色选区深蓝，vs --text-primary 6:1。 */;--shadow-1:0 1px 3px hsl(0 0% 0% / 0.4) /* 暗色 0.4：header.is-scrolled。 */;--shadow-2:0 4px 6px hsl(0 0% 0% / 0.4) /* 暗色 0.4：下拉浮层。 */;--shadow-3:0 5px 15px hsl(0 0% 0% / 0.45) /* 暗色 0.45：中等浮层。 */;--shadow-4:0 10px 24px hsl(0 0% 0% / 0.5) /* 暗色 0.5：大浮层。 */;--shadow-5:0 15px 35px hsl(0 0% 0% / 0.55) /* 暗色 0.55：模态最高。 */}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable}html:has(.site-nav.is-open),html:has(.site-header__end.is-open),html:has(.toc-sheet.is-open){overflow:hidden}@supports not selector(:has(*)){html.is-nav-open,html.is-locked{overflow:hidden}}html.is-locked{overflow:hidden;overscroll-behavior:none}body{margin:0;background:var(--paper);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip;overscroll-behavior-y:contain;-webkit-tap-highlight-color:var(--tap-highlight);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}img,svg,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}h1,h2,h3,h4,h5,h6,p,figure,blockquote,pre{margin:0}ul[class],ol[class]{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:3px}::selection{background:var(--selection-bg);color:var(--text-primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:calc(16px + env(safe-area-inset-left,0px));top:calc(12px + env(safe-area-inset-top,0px));z-index:var(--z-skip);padding:var(--space-2)var(--space-3);background:var(--text-primary);color:var(--ink-inverse);transform:translateY(-160%);transition:transform var(--dur-base)var(--ease-out)}.skip-link:focus-visible{transform:translateY(0)}@supports not selector(:focus-visible){.skip-link:focus{transform:translateY(0)}}.page-shell,.site-header__inner,.site-footer__inner{width:min(var(--shell-max),calc(100% - var(--shell-gutter) * 2));max-width:calc(100% - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));margin-inline:auto}.reading-progress{position:fixed;inset:0 0 auto;z-index:var(--z-progress);height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-strong));transform:scaleX(0);transform-origin:left}.prose pre,.table-scroll{scrollbar-width:thin;scrollbar-color:var(--border-control)transparent;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scroll-padding-inline:var(--space-4)}@media(max-width:720px){html{scrollbar-gutter:auto}}input,textarea,select{font-size:max(16px,1em)}button{touch-action:manipulation}a,button{-webkit-tap-highlight-color:var(--tap-highlight)}@supports not (height:100dvh){html{height:-webkit-fill-available}}body{font-size:var(--step-1);line-height:var(--leading-loose)}.hero h1{font-family:var(--font-functional);font-weight:var(--weight-bold)}.page-header h1,.article-header h1,.error-page h1{font-family:var(--font-title);font-weight:var(--weight-bold)}.eyebrow{margin:0 0 var(--space-6);color:var(--accent);font:var(--step--1)/1.2 var(--font-functional);letter-spacing:.16em}.page-header .eyebrow{margin-bottom:var(--space-8)}.page-header .eyebrow::before{content:"+";display:inline-block;margin-right:var(--space-3);color:var(--text-faint)}.bg{background-color:#f7f7f7}.chroma{background-color:#f7f7f7;-webkit-text-size-adjust:none}.chroma .err{color:#f6f8fa;background-color:#82071e}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#dedede}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#cf222e}.chroma .kc{color:#cf222e}.chroma .kd{color:#cf222e}.chroma .kn{color:#cf222e}.chroma .kp{color:#cf222e}.chroma .kr{color:#cf222e}.chroma .kt{color:#cf222e}.chroma .na{color:#1f2328}.chroma .nc{color:#1f2328}.chroma .no{color:#0550ae}.chroma .nd{color:#0550ae}.chroma .ni{color:#6639ba}.chroma .nl{color:#900;font-weight:var(--weight-normal)}.chroma .nn{color:#24292e}.chroma .nx{color:#1f2328}.chroma .nt{color:#0550ae}.chroma .nb{color:#6639ba}.chroma .bp{color:#6a737d}.chroma .nv{color:#953800}.chroma .vc{color:#953800}.chroma .vg{color:#953800}.chroma .vi{color:#953800}.chroma .vm{color:#953800}.chroma .nf{color:#6639ba}.chroma .fm{color:#6639ba}.chroma .s{color:#0a3069}.chroma .sa{color:#0a3069}.chroma .sb{color:#0a3069}.chroma .sc{color:#0a3069}.chroma .dl{color:#0a3069}.chroma .sd{color:#0a3069}.chroma .s2{color:#0a3069}.chroma .se{color:#0a3069}.chroma .sh{color:#0a3069}.chroma .si{color:#0a3069}.chroma .sx{color:#0a3069}.chroma .sr{color:#0a3069}.chroma .s1{color:#0a3069}.chroma .ss{color:#032f62}.chroma .m{color:#0550ae}.chroma .mb{color:#0550ae}.chroma .mf{color:#0550ae}.chroma .mh{color:#0550ae}.chroma .mi{color:#0550ae}.chroma .il{color:#0550ae}.chroma .mo{color:#0550ae}.chroma .o{color:#0550ae}.chroma .ow{color:#0550ae}.chroma .or{color:#0550ae}.chroma .p{color:#1f2328}.chroma .c{color:#57606a}.chroma .ch{color:#57606a}.chroma .cm{color:#57606a}.chroma .c1{color:#57606a}.chroma .cs{color:#57606a}.chroma .cp{color:#57606a}.chroma .cpf{color:#57606a}.chroma .gd{color:#82071e;background-color:#ffebe9}.chroma .ge{color:#1f2328}.chroma .gi{color:#116329;background-color:#dafbe1}.chroma .go{color:#1f2328}.chroma .gl{text-decoration:underline}.chroma .w{color:#fff}.site-header{position:sticky;top:0;z-index:var(--z-header);background:var(--header-bg);-webkit-backdrop-filter:blur(12px)saturate(1.15);backdrop-filter:blur(12px)saturate(1.15);border-bottom:var(--border-width)solid transparent;transition:border-color var(--dur-base)var(--ease-out),box-shadow var(--dur-base)var(--ease-out);padding-top:env(safe-area-inset-top,0px)}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.site-header{background:var(--paper)}}.site-header.is-scrolled{border-bottom-color:var(--border-default);box-shadow:var(--shadow-1)}.site-header::after{content:"";position:absolute;left:0;bottom:calc(var(--border-width) * -1);width:clamp(72px,9vw,150px);height:var(--border-width);background:var(--accent)}.site-header__inner{min-height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.site-name{display:inline-flex;align-items:center;gap:var(--space-3);min-height:var(--tap-min);font-family:var(--font-title);font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:-.055em}.site-name::before{content:"";width:var(--space-2);height:var(--space-2);border:var(--border-width)solid var(--accent);border-radius:50%;box-shadow:inset 0 0 0 var(--border-width-thick)var(--paper);background:var(--accent)}.site-header__end{display:flex;align-items:center;gap:var(--space-6)}.theme-toggle{display:inline-flex;align-items:baseline;gap:var(--space-2);padding:var(--space-2)0;border:0;background:0 0;color:var(--text-secondary);font-family:var(--font-functional);font-size:var(--text-xs);letter-spacing:.08em;cursor:pointer}.theme-toggle__opt{position:relative;padding-bottom:var(--space-1);transition:color var(--dur-fast)var(--ease-out)}.theme-toggle__opt::after{content:"";position:absolute;inset:auto 0 0;height:var(--border-width);background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-base)var(--ease-out)}.theme-toggle__opt[data-active]{color:var(--text-primary)}.theme-toggle__opt[data-active]::after{transform:scaleX(1)}.theme-toggle__opt:not([data-active]):hover{color:var(--text-primary)}.theme-toggle__opt:not([data-active]):hover::after{transform:scaleX(1)}.theme-toggle:focus-visible .theme-toggle__opt::after{transform:scaleX(1)}.theme-toggle__sep{color:var(--text-faint)}.site-nav{display:flex;gap:var(--space-6);font-size:var(--text-sm);color:var(--text-secondary)}.site-nav a{position:relative;display:inline-flex;align-items:center;min-height:var(--tap-min);padding-block:var(--space-2);transition:color var(--dur-fast)var(--ease-out)}.site-nav a::after{content:"";position:absolute;inset:auto 0 2px;height:var(--border-width);background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-base)var(--ease-out)}.site-nav a:focus-visible{color:var(--text-primary)}.site-nav a:hover::after,.site-nav a:focus-visible::after,.site-nav a[aria-current]::after{transform:scaleX(1)}.nav-toggle{display:none;align-items:center;justify-content:center;gap:var(--space-2);width:auto;height:auto;min-width:0;min-height:0;padding:var(--space-2);border:1px solid var(--border-control);border-radius:0;background:var(--overlay-fab);-webkit-backdrop-filter:blur(10px)saturate(1.15);backdrop-filter:blur(10px)saturate(1.15);box-shadow:var(--shadow-2);color:var(--text-primary);font:inherit;cursor:pointer;transition:border-color var(--dur-fast)var(--ease-out),background var(--dur-fast)var(--ease-out),color var(--dur-fast)var(--ease-out),box-shadow var(--dur-fast)var(--ease-out)}.nav-toggle:hover{border-color:var(--accent);color:var(--accent)}.nav-toggle:focus-visible{outline:none;border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-3)}.nav-toggle[aria-expanded=true]{border-color:var(--accent);background:var(--accent-wash);color:var(--accent-strong)}.nav-toggle__label{font:var(--text-xs)/1 var(--font-functional);letter-spacing:.08em}.nav-toggle__icon,.nav-toggle__icon i{display:none!important}.nav-backdrop{display:none}.site-header__end[hidden]{display:none!important}@media(max-width:720px){:root{--header-h:var(--header-h-mobile)}.site-header{background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none}.site-header::after{display:none}.site-header__inner{flex-wrap:nowrap;min-height:var(--header-h);padding-block:var(--space-2)}.js .nav-toggle{display:inline-flex}.nav-toggle{min-width:var(--tap-min);min-height:var(--tap-min);background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:var(--shadow-1)}.site-header__end{position:absolute;top:calc(var(--header-h) + env(safe-area-inset-top,0px));left:0;right:0;z-index:2;display:none;flex-direction:column;align-items:stretch;gap:0;max-height:calc(100dvh - var(--header-h) - env(safe-area-inset-top,0px));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--paper);border-top:var(--border-width)solid var(--border-default)}@supports not (height:100dvh){.site-header__end{max-height:calc(100vh - var(--header-h) - env(safe-area-inset-top,0px))}}.site-header__end.is-open{display:flex;animation:nav-reveal var(--dur-base)var(--ease-out)}.site-nav{width:100%;flex-direction:column;gap:0;padding:var(--space-2)0;border:0;background:0 0}.site-nav a{min-height:var(--tap-min);padding:var(--space-2)var(--space-3);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--text-primary)}.site-nav a+a{border-top:var(--border-width)solid var(--border-muted)}.site-nav a::after{display:none}.nav-backdrop[hidden]{display:none}.nav-backdrop:not([hidden]){display:block;position:fixed;inset:calc(var(--header-h) + env(safe-area-inset-top,0px))0 0;z-index:1;border:0;padding:0;background:var(--overlay-scrim);cursor:pointer}.site-header:has(.site-header__end.is-open){border-bottom-color:var(--border-default)}.theme-toggle{display:inline-flex;justify-content:flex-start;width:100%;min-height:var(--tap-min);align-items:center;padding:var(--space-2)var(--space-3);border-top:var(--border-width)solid var(--border-muted);margin-top:0;gap:var(--space-2)}.theme-toggle__opt::after{display:none}.no-js .site-header__end{position:static;display:flex;max-height:none;border-top:0}.no-js .site-header__inner{flex-wrap:wrap}.no-js .site-header{position:relative}}.hero{position:relative;min-height:360px;padding:var(--space-12)0 var(--space-6);display:flex;align-items:center;overflow:hidden;border-bottom:var(--border-width)solid var(--border-strong);isolation:isolate}.hero::after{content:"";position:absolute;inset:0;z-index:-2;opacity:.045;pointer-events:none;background-image:var(--texture-noise)}.hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient( 120% 90% at 88% 100%,var(--accent-line),transparent 60% )}.hero__content{position:relative;z-index:1;width:min(650px,62%)}.hero__eyebrow{margin-bottom:var(--space-6);color:var(--accent);font-family:var(--font-functional);font-size:var(--text-xs);font-weight:var(--weight-normal);letter-spacing:.18em;line-height:var(--leading-tight)}.hero__eyebrow span{color:var(--text-faint);font-family:var(--font-functional);font-size:var(--text-xs);font-weight:var(--weight-normal);letter-spacing:.08em}.hero h1{margin:0;font-size:var(--display-hero);line-height:var(--leading-tight);letter-spacing:-.05em;white-space:nowrap}.hero__tagline{max-width:430px;margin:var(--space-6)0 0;padding-left:var(--space-4);border-left:var(--border-width-thick)solid var(--accent);color:var(--text-secondary);font:var(--text-xl)/1.75 var(--font-body)}.hero__nav{margin-top:var(--space-7);display:flex;justify-content:flex-start;gap:clamp(24px,3vw,38px);color:var(--text-secondary);font-size:var(--text-sm)}.hero__nav a{position:relative;min-height:36px;padding-block:var(--space-2);transition:color var(--dur-fast)var(--ease-out)}.hero__nav a::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:var(--border-width);background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-base)var(--ease-out)}.hero__nav a:hover,.hero__nav a:focus-visible{color:var(--text-primary)}.hero__nav a:hover::before,.hero__nav a:focus-visible::before{transform:scaleX(1)}@media(max-width:900px){.hero__content{width:min(560px,78vw)}.hero__tagline{max-width:410px}}@media(max-width:720px){.hero{min-height:0;padding:var(--space-5)0 var(--space-4);padding-top:calc(var(--space-5) + env(safe-area-inset-top,0px) * .5);border-bottom-width:var(--border-width)}.hero::after,.hero::before{display:none}.hero__content{width:100%}.hero__eyebrow{margin-bottom:var(--space-3);font-size:var(--text-xs);letter-spacing:.14em}.hero h1{font-size:clamp(30px,10vw,42px);line-height:var(--leading-tight);letter-spacing:-.04em;white-space:normal;overflow-wrap:anywhere}@supports(word-break:auto-phrase){.hero h1{word-break:auto-phrase}}.hero__tagline{max-width:100%;margin-top:var(--space-3);padding-left:var(--space-3);border-left-width:var(--border-width-thick);font-size:var(--text-sm);line-height:var(--leading-loose)}.hero__nav{margin-top:var(--space-4);gap:var(--space-2)var(--space-3);font-size:var(--text-sm);flex-wrap:wrap}.hero__nav a{min-height:var(--tap-min);padding:var(--space-1);line-height:var(--leading-normal)}.hero__nav a::before{display:none}}@media(max-width:380px){.hero{padding:var(--space-4)0 var(--space-3)}.hero h1{font-size:clamp(28px,10vw,36px)}.hero__tagline{margin-top:var(--space-2)}}.wish-drop{position:absolute;right:0;bottom:0;z-index:0;width:400px;height:auto;opacity:.62}.wish-drop svg{display:block;width:100%;height:100%;overflow:visible}.wish-drop__guide{fill:none;font:8px var(--font-functional);letter-spacing:.08em;opacity:0}.wish-drop__trail{fill:none;stroke:var(--text-meta);stroke-width:1.2;stroke-linecap:round;stroke-dasharray:18 16;vector-effect:non-scaling-stroke}.wish-drop__trail-mask{fill:none;stroke:var(--paper);stroke-width:5;stroke-dasharray:100;stroke-dashoffset:100;vector-effect:non-scaling-stroke}.wish-drop__guide text{fill:var(--text-meta);stroke:none}.wish-drop__coin{fill:var(--paper);stroke:var(--text-meta);stroke-width:1;opacity:0;vector-effect:non-scaling-stroke}.wish-drop__coin-face{transform-box:view-box;transform-origin:112px 206px;transform:scale(.82)}.wish-drop__coin-mark{fill:none;stroke:var(--accent)}.wish-drop__splash{fill:var(--accent);stroke:var(--accent);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform-box:view-box;transform-origin:280px 306px;vector-effect:non-scaling-stroke}.wish-drop__splash-lines{fill:none}.wish-drop__ripples ellipse{stroke:var(--border-default);stroke-width:1.15;transform-box:view-box;transform-origin:280px 306px;vector-effect:non-scaling-stroke}.wish-drop__ripples ellipse:nth-child(1){stroke:var(--accent);opacity:.82}.wish-drop__ripples ellipse:nth-child(2){stroke:var(--accent);opacity:.68}.wish-drop__ripples ellipse:nth-child(3){stroke:var(--text-faint);stroke-dasharray:7 8;opacity:.38}.wish-drop__ripples ellipse:nth-child(4){stroke:var(--accent);opacity:.44}.wish-drop__ripples ellipse:nth-child(5){stroke:var(--text-faint);stroke-dasharray:11 10;opacity:.3}.wish-drop__ripples ellipse:nth-child(6){stroke:var(--accent);opacity:.2}.wish-drop__impact{fill:var(--accent);opacity:.65;filter:drop-shadow(0 0 3px var(--accent-line));transform-box:view-box;transform-origin:280px 306px;vector-effect:non-scaling-stroke}.wish-drop__ticks{fill:var(--accent);stroke:var(--accent);stroke-width:.8;opacity:.38;vector-effect:non-scaling-stroke}.wish-drop__caption{fill:none;stroke:var(--text-meta);stroke-width:.7;opacity:.38;font:8px var(--font-functional);letter-spacing:.08em}.wish-drop__caption text{fill:var(--text-meta);stroke:none}.hero.is-animation-pending .wish-drop__ripples,.hero.is-animation-pending .wish-drop__impact,.hero.is-animation-pending .wish-drop__ticks,.hero.is-animation-pending .wish-drop__caption{opacity:0}.hero.is-playing .wish-drop__guide{animation:guide-cycle var(--dur-hero)ease 1}.hero.is-playing .wish-drop__trail-mask{animation:trail-reveal var(--dur-hero)linear 1}.hero.is-playing .wish-drop__coin{animation:coin-flight var(--dur-hero)linear 1}.hero.is-playing .wish-drop__coin-face{animation:coin-spin var(--dur-hero)linear 1}.hero.is-playing .wish-drop__splash{animation:splash-rise var(--dur-hero)ease-out 1}.hero.is-playing .wish-drop__impact{animation:impact-pulse var(--dur-hero)ease-out 1}.hero.is-playing .wish-drop__ticks,.hero.is-playing .wish-drop__caption{animation:annotation-cycle var(--dur-hero)ease-out 1}.hero.is-playing .wish-drop__ripples ellipse:nth-child(1){animation:ripple-one var(--dur-hero)ease-out 1}.hero.is-playing .wish-drop__ripples ellipse:nth-child(2){animation:ripple-two var(--dur-hero)ease-out 1}.hero.is-playing .wish-drop__ripples ellipse:nth-child(3){animation:ripple-three var(--dur-hero)ease-out 1}.hero.is-playing .wish-drop__ripples ellipse:nth-child(4){animation:ripple-four var(--dur-hero)ease-out 1}.hero.is-playing .wish-drop__ripples ellipse:nth-child(5){animation:ripple-five var(--dur-hero)ease-out 1}.hero.is-playing .wish-drop__ripples ellipse:nth-child(6){animation:ripple-six var(--dur-hero)ease-out 1}@media(max-width:900px){.wish-drop{right:0;bottom:0;width:clamp(320px,42vw,400px);opacity:.46}}@media(max-width:720px){.wish-drop{display:none}}.page-header{position:relative;padding:var(--space-9)0 var(--space-8);overflow:hidden;border-bottom:var(--border-width)solid var(--border-strong);isolation:isolate}.page-header>:not(.ripple-art){position:relative;z-index:1}.ripple-art{position:absolute;pointer-events:none;color:var(--border-default)}.ripple-art svg{display:block;width:100%;height:100%;overflow:visible}.ripple-art__rings ellipse{stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke}.ripple-art__rings ellipse:nth-child(2),.ripple-art__rings ellipse:nth-child(4){stroke-dasharray:5 9}.ripple-art__accent{stroke:var(--accent);stroke-width:1.2;opacity:.6;vector-effect:non-scaling-stroke}.ripple-art__point{fill:var(--accent)}.ripple-art__glints{fill:var(--accent);stroke:var(--accent);stroke-width:.8;opacity:.48;vector-effect:non-scaling-stroke}.ripple-art__label{fill:var(--text-faint);stroke:var(--text-faint);stroke-width:.7;font:var(--text-xs)var(--font-functional);letter-spacing:.08em}.ripple-art__label text{stroke:none}.page-header .ripple-art{z-index:-1;width:440px;height:440px;opacity:.34}.page-header .ripple-art__label,.page-header .ripple-art__point,.page-header .ripple-art__glints{display:none}.page-header .ripple-art__accent{opacity:.34}.page-header .ripple-art{animation:ink-settle var(--dur-ink)linear both}.ripple-art--list{right:-180px;top:-190px;transform:rotate(8deg)}.ripple-art--terms{right:-120px;bottom:-250px;transform:rotate(-10deg)}.ripple-art--archive{right:5%;top:-280px;transform:rotate(18deg)}.ripple-art--search{right:-210px;bottom:-180px;transform:rotate(-18deg)}.ripple-art--error{right:-140px;top:-160px;transform:rotate(12deg)}.page-header h1{margin:0;font-size:var(--display-page);letter-spacing:-.07em;line-height:var(--leading-tight)}.page-intro{max-width:640px;margin:var(--space-7)0 0;color:var(--text-secondary);font:var(--text-lg)/1.9 var(--font-body)}.page-intro p{margin:0}.page-count{margin:var(--space-7)0 0;color:var(--text-meta);font:var(--text-xs)var(--font-functional)}.listing-page{min-height:70vh;padding-bottom:var(--space-10)}.listing-page>.post-list{margin-top:var(--space-8)}.empty-state{width:100%;margin:0;padding:var(--space-10)0;color:var(--text-secondary);font:var(--text-base)/1.8 var(--font-body)}.term-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--space-8);border-top:var(--border-width)solid var(--border-default);margin-top:var(--space-10)}.term-item{position:relative;min-height:var(--space-9);padding:var(--space-5)0;display:flex;justify-content:space-between;overflow:hidden;border-bottom:var(--border-width)solid var(--border-default);font-size:var(--text-xl)}.term-item::after{content:"→";position:absolute;right:var(--space-4);bottom:calc(var(--space-6) * -1);color:var(--accent-line);font-size:var(--text-5xl);transition:bottom var(--dur-base)var(--ease-out)}.term-item span{transition:color var(--dur-fast)var(--ease-out)}.term-item:hover::after,.term-item:focus-visible::after{bottom:calc(var(--space-3) * -1)}.term-item:hover span,.term-item:focus-visible span{color:var(--accent)}.term-item small{color:var(--text-meta);font:var(--text-xs)var(--font-functional)}@media(max-width:900px){.term-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-6)}}@media(max-width:720px){.page-header{padding:var(--space-5)0 var(--space-4);border-bottom-width:var(--border-width)}.page-header .ripple-art{display:none}.page-header h1{font-size:clamp(28px,9vw,38px);line-height:var(--leading-tight);letter-spacing:-.04em;overflow-wrap:anywhere}@supports(word-break:auto-phrase){.page-header h1{word-break:auto-phrase}}.page-header .eyebrow{margin-bottom:var(--space-2);font-size:var(--text-xs)}.page-intro{margin-top:var(--space-2);font-size:var(--text-sm);line-height:var(--leading-normal)}.page-count{margin-top:var(--space-2);font-size:var(--text-xs)}.term-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-4);row-gap:0;margin-top:var(--space-4)}.term-item{min-height:var(--tap-min);padding-block:var(--space-2);font-size:var(--text-sm);align-items:center;gap:var(--space-2)}.term-item::after{display:none}.term-item small{font-size:var(--text-xs)}.listing-page>.post-list{margin-top:var(--space-4)}}.section-label{position:relative;padding:var(--space-6)0;display:flex;justify-content:space-between;border-bottom:var(--border-width)solid var(--border-default)}.home .section-label{padding-block:var(--space-4)}.section-label::before{content:"";position:absolute;left:0;bottom:calc(var(--border-width) * -1);width:var(--tap-min);height:var(--border-width);background:var(--accent);transition:width var(--dur-slow)var(--ease-out)}.section-label h2,.section-label span{margin:0;font:var(--text-xs)/1.2 var(--font-functional);letter-spacing:.1em}.section-label>span{display:inline-flex;min-width:25px;height:25px;margin-top:calc(var(--space-2) * -1);align-items:center;justify-content:center;border:var(--border-width)solid var(--border-default);border-radius:50%;color:var(--text-faint);font-size:var(--text-xs)}@media(hover:hover) and (pointer:fine){.featured:hover .section-label::before,.featured:focus-within .section-label::before,.latest:hover .section-label::before,.latest:focus-within .section-label::before,.related:hover .section-label::before,.related:focus-within .section-label::before{width:var(--space-9)}}.featured{margin-bottom:var(--space-10)}.featured-post{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr)180px;gap:var(--space-7);padding:var(--space-6)var(--space-4);background:var(--surface-veil);border-bottom:var(--border-width)solid var(--border-default);transition:background-color var(--dur-base)var(--ease-out),box-shadow var(--dur-base)var(--ease-out)}.featured-post__body{grid-column:2}.featured-post__meta{grid-column:3}.featured-post__date{display:none}.featured-post::before{content:"";position:absolute;inset:0 auto 0 0;width:var(--border-width-thick);background:var(--accent);transition:width var(--dur-base)var(--ease-out)}@media(hover:hover) and (pointer:fine){.featured-post:hover{background:var(--surface-lift);box-shadow:var(--shadow-1)}.featured-post:hover::before{width:var(--space-1)}}.featured-post__date{padding-top:var(--space-6);color:var(--text-meta);font:var(--text-xs)/1.3 var(--font-functional)}.topic{display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);color:var(--accent);font-size:var(--text-sm);transition:color var(--dur-fast)var(--ease-out)}.topic::before{content:"";width:var(--space-4);height:var(--border-width);background:currentColor}.topic:hover,.topic:focus-visible{color:var(--accent-strong)}.featured-post h3{max-width:720px;margin:0;font-family:var(--font-title);font-size:var(--step-2);line-height:var(--leading-normal);letter-spacing:-.025em;font-weight:var(--weight-bold)}.featured-post h3 a,.post-row h2 a,.post-row h3 a{transition:color var(--dur-fast)var(--ease-out)}.featured-post h3 a:hover,.featured-post h3 a:focus-visible,.post-row h2 a:hover,.post-row h2 a:focus-visible,.post-row h3 a:hover,.post-row h3 a:focus-visible{color:var(--accent)}.featured-post__body p{max-width:680px;margin:var(--space-2)0 0;color:var(--text-secondary);font:var(--text-base)/1.65 var(--font-body)}.featured-post__meta{padding-top:var(--space-6);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);color:var(--text-secondary);font-size:var(--text-xs)}.featured-post__meta a,.post-row__meta a{color:var(--accent);text-decoration:underline;text-underline-offset:var(--space-1);text-decoration-thickness:var(--border-width);transition:color var(--dur-fast)var(--ease-out),text-decoration-color var(--dur-fast)var(--ease-out)}.featured-post__meta a:hover,.featured-post__meta a:focus-visible,.post-row__meta a:hover,.post-row__meta a:focus-visible{color:var(--accent-strong);text-decoration-color:var(--accent-strong)}.js .reveal{opacity:0}.js .reveal.is-revealed{animation:rise-in var(--dur-slow)var(--ease-out)both}.latest{margin-bottom:var(--space-8)}.post-row{position:relative;display:grid;grid-template-columns:92px minmax(0,1fr)180px;gap:var(--space-7);padding:var(--space-6)var(--space-4);transition:background-color var(--dur-base)var(--ease-out)}.post-row::before{content:"";position:absolute;left:0;top:50%;width:0;height:var(--border-width);background:var(--accent);transition:width var(--dur-base)var(--ease-out)}.post-row:hover,.post-row:focus-within{background:var(--surface-lift)}.post-row:hover::before,.post-row:focus-within::before{width:var(--space-3)}.post-row__date{padding-top:var(--space-2);color:var(--text-meta);font:var(--text-xs)/1.3 var(--font-functional);white-space:nowrap}.post-row h2{margin:0;font-family:var(--font-title);font-size:var(--step-2);line-height:var(--leading-normal);letter-spacing:-.025em;font-weight:var(--weight-bold);color:var(--text-secondary)}.post-row h3{margin:0;font-family:var(--font-title);font-size:var(--step-2);line-height:var(--leading-normal);letter-spacing:-.025em;font-weight:var(--weight-bold)}.post-row__body p{max-width:660px;margin:var(--space-2)0 0;color:var(--text-secondary);font:var(--text-sm)/1.6 var(--font-body)}.post-row__meta{padding-top:var(--space-1);display:flex;justify-content:space-between;gap:var(--space-3);color:var(--text-secondary);font-size:var(--text-xs)}.text-link{display:inline-flex;align-items:center;gap:var(--space-5);margin-top:var(--space-8);color:var(--accent);font-size:var(--text-sm);border-bottom:var(--border-width)solid var(--accent);padding-bottom:var(--space-1);transition:color var(--dur-fast)var(--ease-out),border-color var(--dur-fast)var(--ease-out)}.text-link span{transition:transform var(--dur-base)var(--ease-out)}.text-link:hover,.text-link:focus-visible{color:var(--accent-strong);border-bottom-color:var(--accent-strong)}.text-link:hover span,.text-link:focus-visible span{transform:translateX(var(--space-1))}@media(min-width:721px){.featured{margin-bottom:var(--space-8)}.text-link{margin-top:var(--space-6)}}@media(max-width:900px){.featured-post{grid-template-columns:60px minmax(0,1fr)}.featured-post__body{grid-column:2}.featured-post__meta{grid-column:2;padding-top:0;justify-content:flex-start}.post-row{grid-template-columns:80px minmax(0,1fr)}.post-row__meta{grid-column:2;justify-content:flex-start}}@media(max-width:720px){.section-label{padding-block:var(--space-2);margin-bottom:0;gap:var(--space-2)}.section-label h2{font-size:var(--text-xs)}.section-label::before{display:none}.featured{margin-bottom:var(--space-4)}.featured-post{grid-template-columns:1fr;padding:var(--space-3);gap:var(--space-2);border:0;border-bottom:var(--border-width)solid var(--border-default);background:0 0}.featured-post::before{display:none}.featured-post__body{grid-column:1}.featured-post__date{padding-top:0;font-size:var(--text-xs);letter-spacing:.06em}.featured-post__meta{grid-column:1;padding-top:0;font-size:var(--text-xs);gap:var(--space-2);justify-content:flex-start}.featured-post h3{font-size:var(--text-base);line-height:var(--leading-snug)}.featured-post__body p{margin-top:var(--space-1);font-size:var(--text-sm);line-height:var(--leading-normal);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-row{grid-template-columns:1fr;gap:var(--space-1);padding:var(--space-3)0;border-bottom:var(--border-width)solid var(--border-default)}.post-row::before{display:none}.post-row:hover,.post-row:focus-within{background:0 0}.post-row__date{font-size:var(--text-xs);letter-spacing:.06em}.post-row h2,.post-row h3{font-size:var(--text-base);line-height:var(--leading-snug)}.post-row__body p{margin-top:var(--space-1);font-size:var(--text-sm);line-height:var(--leading-normal);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-row__meta{grid-column:1;font-size:var(--text-xs);gap:var(--space-2)}.latest{margin-bottom:var(--space-4)}.text-link{margin-top:var(--space-3);font-size:var(--text-sm);min-height:var(--tap-min)}.hero__nav a,.article-tags a,.text-link{min-height:var(--tap-min)}}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-6);padding:var(--space-10)0 var(--space-5)}.pagination__pages{display:flex;gap:var(--space-2)}.pagination__link{display:inline-flex;align-items:center;min-height:var(--tap-min);color:var(--accent);font-size:var(--text-sm);border-bottom:var(--border-width)solid transparent;padding-bottom:var(--space-1);transition:color var(--dur-fast)var(--ease-out),border-color var(--dur-fast)var(--ease-out)}.pagination__link:hover,.pagination__link:focus-visible{color:var(--accent-strong);border-bottom-color:var(--accent-strong)}.pagination__link.is-disabled{color:var(--text-faint);pointer-events:none}.pagination__number{display:grid;place-items:center;min-width:var(--tap-min);height:var(--tap-min);border:var(--border-width-thick)solid var(--border-control);color:var(--text-secondary);font-size:var(--text-xs);font-family:var(--font-functional);transition:border-color var(--dur-fast)var(--ease-out),color var(--dur-fast)var(--ease-out),background-color var(--dur-fast)var(--ease-out)}a.pagination__number:hover,a.pagination__number:focus-visible{border-color:var(--accent);color:var(--accent);background:var(--accent-wash)}.pagination__number.is-current{border:var(--border-width-thick)solid var(--accent);color:var(--text-primary);background:var(--accent-wash)}@media(max-width:720px){.pagination{gap:var(--space-3);padding:var(--space-5)0 var(--space-3)}.pagination__number{min-width:var(--tap-min);height:var(--tap-min);font-size:var(--text-xs)}.pagination__link{font-size:var(--text-xs);min-height:var(--tap-min);padding-bottom:0}}.article{--measure:760px;padding-bottom:var(--space-8)}.article-header{position:relative;max-width:var(--measure-wide);padding:var(--space-8)0}.article-header h1{margin:0;font-size:var(--display-article);line-height:var(--leading-tight);letter-spacing:-.06em}.article-deck{max-width:var(--measure);margin:var(--space-6)0;color:var(--text-secondary);font:19px/1.7 var(--font-body);font-weight:var(--weight-normal)}.article-meta{display:flex;flex-wrap:wrap;gap:var(--space-2)var(--space-5);color:var(--text-meta);font:var(--text-xs)/1.5 var(--font-functional)}.article-layout{display:grid;grid-template-columns:minmax(0,var(--measure))minmax(140px,1fr);gap:clamp(32px,5vw,64px);align-items:start;min-width:0}.article-content{grid-column:1;grid-row:1;min-width:0}.article-divider{display:block;max-width:var(--measure);margin:0;border:0;border-top:var(--border-width-thick)solid var(--border-default);padding-top:var(--space-8)}.article-footer{max-width:var(--measure);margin-top:var(--space-8)}.article-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-6)0 var(--space-10);border-top:var(--border-width)solid var(--border-default)}.article-tags a{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap-min);padding:var(--space-2);overflow:hidden;border:var(--border-width)solid var(--border-control);color:var(--text-secondary);font-size:var(--text-xs);transition:color var(--dur-fast)var(--ease-out),border-color var(--dur-fast)var(--ease-out),background-color var(--dur-fast)var(--ease-out)}.article-tags a:hover,.article-tags a:focus-visible{border-color:var(--accent);color:var(--accent);background:var(--accent-wash)}.related-item{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4);padding:var(--space-4)0;border-bottom:var(--border-width)solid var(--border-default)}.related-item span{transition:color var(--dur-fast)var(--ease-out),transform var(--dur-base)var(--ease-out)}.related-item:hover span,.related-item:focus-visible span{color:var(--accent);transform:translateX(2px)}.related-item time{color:var(--text-meta);font:var(--text-xs)/1 var(--font-functional)}.back-to-top{display:none;position:fixed;right:calc(clamp(12px,4vw,48px) + env(safe-area-inset-right,0px));bottom:calc(clamp(16px,4vw,48px) + env(safe-area-inset-bottom,0px));z-index:var(--z-backtotop);width:var(--tap-min);height:var(--tap-min);place-items:center;padding:0;border:var(--border-width)solid var(--border-control);background:var(--surface-lift);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-secondary);cursor:pointer;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity var(--dur-base)var(--ease-out),transform var(--dur-base)var(--ease-out),color var(--dur-fast)var(--ease-out),border-color var(--dur-fast)var(--ease-out),box-shadow var(--dur-base)var(--ease-out)}.js .back-to-top{display:grid}.back-to-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.back-to-top:hover,.back-to-top:focus-visible{color:var(--accent);border-color:var(--accent);box-shadow:var(--shadow-1)}.back-to-top svg{width:16px;height:16px}@media(max-width:900px){.article-layout{grid-template-columns:1fr;gap:0}.article-content{grid-column:1;grid-row:1;max-width:var(--measure)}.article-header h1{font-size:clamp(24px,7.5vw,32px);line-height:var(--leading-tight);letter-spacing:-.03em;overflow-wrap:anywhere}@supports(word-break:auto-phrase){.article-header h1{word-break:auto-phrase}}.article-deck{margin:var(--space-2)0;font-size:var(--text-sm);line-height:var(--leading-loose)}.article-meta{gap:var(--space-2);font-size:var(--text-xs);flex-wrap:wrap}.article-divider{margin-inline:0;padding-top:var(--space-4);border-top-width:var(--border-width)}.article-tags{gap:var(--space-2)}.article-tags a{min-height:var(--tap-min);padding:var(--space-2);font-size:var(--text-xs)}.related{margin-top:var(--space-5)}.related .section-label{padding-block:var(--space-2)}.related-item{min-height:var(--tap-min);display:flex;align-items:center;padding:var(--space-2)0;gap:var(--space-2);font-size:var(--text-sm);line-height:var(--leading-snug);border-bottom:var(--border-width)solid var(--border-default)}.related-item time{font-size:var(--text-xs)}.back-to-top{width:var(--tap-min);height:var(--tap-min);bottom:calc(12px + env(safe-area-inset-bottom,0px));background:var(--surface-lift);-webkit-backdrop-filter:none;backdrop-filter:none}.js .toc-fab~.back-to-top{bottom:calc(68px + env(safe-area-inset-bottom,0px))}.js .toc-fab[hidden]~.back-to-top{bottom:calc(12px + env(safe-area-inset-bottom,0px))}}.toc{grid-column:2;grid-row:1;position:sticky;top:calc(var(--header-h) + var(--space-5));color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-normal)}.toc details{border-top:var(--border-width-thick)solid var(--border-strong);padding-top:var(--space-4)}.toc summary{color:var(--text-primary);font:var(--text-sm)var(--font-functional);font-weight:var(--weight-bold);letter-spacing:.04em;cursor:pointer}.toc ul{padding-left:0;list-style:none}.toc ul ul{padding-left:var(--space-4)}.toc li{margin:var(--space-2)0}.toc a{position:relative;display:inline-block;padding-left:14px;transition:color var(--dur-fast)var(--ease-out)}.toc a::before{content:"";position:absolute;left:0;top:50%;width:8px;height:1px;background:var(--accent);transform:translateY(-50%)scaleX(0);transform-origin:left;transition:transform var(--dur-base)var(--ease-out)}.toc a:hover,.toc a:focus-visible{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.toc a.is-active{color:var(--accent)}.toc a.is-active::before{transform:translateY(-50%)scaleX(1)}.toc-fab,.toc-backdrop,.toc-sheet{display:none}.toc-fab{position:fixed;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:var(--z-backtotop);display:none;align-items:center;justify-content:center;width:auto;height:auto;padding:var(--space-2);border:1px solid var(--border-control);border-radius:0;background:var(--overlay-fab);-webkit-backdrop-filter:blur(10px)saturate(1.15);backdrop-filter:blur(10px)saturate(1.15);box-shadow:var(--shadow-2);color:var(--text-primary);cursor:pointer;transition:border-color var(--dur-fast)var(--ease-out),background var(--dur-fast)var(--ease-out),transform var(--dur-fast)var(--ease-out),box-shadow var(--dur-fast)var(--ease-out)}.toc-fab__icon{display:none}.toc-fab span{display:block;font:var(--text-xs)/1 var(--font-functional);letter-spacing:.08em}.toc-fab:focus-visible{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-3)}.toc-fab[aria-expanded=true]{border-color:var(--accent);background:var(--accent-wash);color:var(--accent-strong)}.toc-backdrop{position:fixed;inset:0;z-index:calc(var(--z-backtotop) + 1);border:0;padding:0;background:var(--overlay-scrim)}.toc-backdrop[hidden]{display:none!important}.toc-sheet{position:fixed;inset:auto 0 0;z-index:calc(var(--z-backtotop) + 2);max-height:min(68dvh,560px);display:flex;flex-direction:column;background:var(--paper);border-top:1px solid var(--border-default);border-radius:0;box-shadow:var(--shadow-4);overflow:hidden;overscroll-behavior:contain;padding-bottom:env(safe-area-inset-bottom,0px)}@supports not (height:100dvh){.toc-sheet{max-height:min(68vh,560px)}}.toc-sheet[hidden]{display:none!important}.toc-sheet__header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3)var(--space-4);border-bottom:var(--border-width)solid var(--border-default);background:var(--paper);flex:none}.toc-sheet__title{padding-left:var(--space-3);color:var(--text-primary);font-size:var(--text-sm);line-height:var(--leading-normal);letter-spacing:0;text-transform:none}.toc-sheet__close{display:grid;place-items:center;width:var(--tap-min);height:var(--tap-min);min-width:var(--tap-min);min-height:var(--tap-min);border:var(--border-width)solid var(--border-default);border-radius:0;background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:border-color var(--dur-fast)var(--ease-out),color var(--dur-fast)var(--ease-out),background var(--dur-fast)var(--ease-out)}.toc-sheet__close:hover,.toc-sheet__close:focus-visible{border-color:var(--accent);color:var(--accent);background:var(--accent-wash)}.toc-sheet__close svg{width:14px;height:14px}.toc-sheet__body{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:var(--space-3)var(--space-4)var(--space-4);color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-normal)}.toc-sheet__body ul{margin:0;padding:0;list-style:none}.toc-sheet__body ul ul{padding-left:var(--space-4);border-left:var(--border-width)solid var(--border-default);margin-left:var(--space-2)}.toc-sheet__body li{margin:var(--space-1)0}.toc-sheet__body a{display:flex;align-items:center;min-height:var(--tap-min);padding:var(--space-2)var(--space-3);border-radius:var(--radius);position:relative;transition:color var(--dur-fast)var(--ease-out),background var(--dur-fast)var(--ease-out)}.toc-sheet__body a::before{content:"";position:absolute;left:0;top:50%;width:3px;height:18px;background:var(--accent);border-radius:999px;transform:translateY(-50%)scaleY(0);transition:transform var(--dur-base)var(--ease-out)}.toc-sheet__body a:hover,.toc-sheet__body a:focus-visible{color:var(--text-primary);background:var(--surface-lift)}.toc-sheet__body a.is-active{color:var(--accent);background:var(--accent-wash)}.toc-sheet__body a.is-active::before{transform:translateY(-50%)scaleY(1)}@media(min-width:901px){.toc-fab,.toc-backdrop,.toc-sheet{display:none!important}}@media(max-width:900px){.js .toc--desktop{display:none}.js .toc-fab{display:inline-flex}.js .toc-backdrop[hidden],.js .toc-sheet[hidden]{display:none}.js .toc-backdrop:not([hidden]){display:block}.js .toc-sheet:not([hidden]){display:flex}}@media(max-width:720px){.toc-fab{background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:var(--shadow-1);border-radius:0}.toc-sheet{box-shadow:none;border-radius:0;border-top-width:var(--border-width)}.toc-sheet__header{padding:var(--space-2)var(--space-3)}.toc-sheet__body a{padding:var(--space-2)var(--space-3);font-size:var(--text-sm)}}.prose{max-width:var(--measure);font-size:clamp(17px,1.0625rem + .22vw,18.5px);line-height:1.9;text-align:justify;text-justify:inter-ideograph;hanging-punctuation:allow-end;overflow-wrap:break-word}.prose>:first-child{margin-top:0}.prose--drop-cap>p:first-child::first-letter{float:left;margin:.08em .16em 0 0;color:var(--accent);font-family:var(--font-functional);font-size:var(--text-6xl);font-weight:var(--weight-normal);line-height:.82}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{font-family:var(--font-title);font-weight:var(--weight-bold);scroll-margin-top:calc(var(--header-h) + var(--space-4))}.prose h2{margin:1.75rem 0 .5rem;font-size:var(--step-4);line-height:var(--leading-snug);letter-spacing:-.03em}.prose h3{margin:1.25rem 0 .4rem;font-size:var(--step-2);line-height:var(--leading-normal)}.prose h4{margin:1rem 0 .35rem;font-size:var(--step-1);line-height:var(--leading-normal)}.prose h5,.prose h6{margin:1rem 0 .3rem;font-size:var(--text-sm);line-height:var(--leading-normal)}.prose p,.prose ul,.prose ol,.prose blockquote{margin:1rem 0}.prose li+li{margin-top:.5rem}.prose a{color:var(--accent);overflow-wrap:anywhere;text-decoration-thickness:var(--border-width);text-underline-offset:3px;text-decoration-color:var(--accent-line);transition:color var(--dur-fast)var(--ease-out),text-decoration-color var(--dur-fast)var(--ease-out)}.prose a:hover,.prose a:focus-visible{color:var(--accent-strong);text-decoration-color:var(--accent-strong)}.prose blockquote{position:relative;margin-inline:0;padding:var(--space-2)var(--space-4)var(--space-2)var(--space-5);border-left:var(--border-width-thick)solid var(--accent);background:var(--accent-wash);color:var(--text-secondary);font-weight:var(--weight-normal)}.prose blockquote::before{content:"“";position:absolute;left:var(--space-5);top:-.62em;font-family:var(--font-body);font-size:var(--text-2xl);line-height:var(--leading-tight);color:var(--accent);opacity:var(--opacity-4);pointer-events:none}.prose img{max-width:100%;height:auto;margin-inline:auto;border:var(--border-width)solid var(--border-default);display:block}.prose figure{margin:1.4rem 0;max-width:100%;overflow:hidden}.prose figcaption{margin-top:var(--space-2);text-align:center;color:var(--text-meta);font:var(--text-xs)/1.6 var(--font-functional);letter-spacing:.04em}.table-scroll{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;background:linear-gradient(to right,var(--paper) 30%,transparent)0/var(--space-5)100% no-repeat,linear-gradient(to left,var(--paper) 30%,transparent)100%/var(--space-5)100% no-repeat,linear-gradient(to right,var(--scroll-fade),transparent)0/var(--space-2)100% no-repeat,linear-gradient(to left,var(--scroll-fade),transparent)100%/var(--space-2)100% no-repeat;background-attachment:local,local,scroll,scroll;border:var(--border-width)solid transparent;border-radius:0}.table-scroll:focus-visible{outline:var(--border-width-thick)solid var(--focus-ring-color);outline-offset:calc(-1 * var(--border-width-thick))}.prose table{width:max-content;min-width:100%;border-collapse:collapse;font-family:var(--font-functional);font-size:var(--text-sm)}.prose th,.prose td{padding:var(--space-2)var(--space-3);border:var(--border-width)solid var(--border-default);text-align:left;white-space:nowrap}.prose td{white-space:normal;overflow-wrap:anywhere}.prose th{background:var(--code-bg);font-weight:var(--weight-normal)}.prose tbody tr:nth-child(even){background:var(--code-row-alt)}.prose .code-block,.prose>pre{margin:1.4rem 0;max-width:100%;overflow-wrap:normal}.prose hr{margin:1.8rem auto;border:0;width:120px;height:24px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 24'%3E%3Ccircle cx='60' cy='12' r='7' fill='none' stroke='%23b5b8b5'/%3E%3Ccircle cx='60' cy='12' r='11' fill='none' stroke='%23b5b8b5' stroke-dasharray='4 5'/%3E%3Ccircle cx='60' cy='12' r='2.2' fill='%23315c7c'/%3E%3C/svg%3E")50%/contain no-repeat}@media(max-width:720px){.prose{font-size:var(--text-base);line-height:var(--leading-loose);hyphens:auto}.prose--drop-cap>p:first-child::first-letter{display:none}.prose h2{font-size:var(--text-xl);margin:1rem 0 .3rem;line-height:var(--leading-snug);letter-spacing:-.02em}.prose h3{margin:.9rem 0 .25rem;font-size:var(--text-lg);line-height:var(--leading-snug)}.prose h4{margin:.8rem 0 .2rem;font-size:var(--text-base)}.prose p,.prose ul,.prose ol,.prose blockquote{margin:.7rem 0}.prose li+li{margin-top:.25rem}.prose blockquote{padding:var(--space-2)var(--space-3);border-left-width:var(--border-width-thick);font-size:var(--text-sm);line-height:var(--leading-loose);background:var(--accent-wash)}.prose blockquote::before{display:none}.prose hr{margin:1rem auto;width:var(--space-8);height:var(--border-width);background:var(--border-default);border-radius:var(--radius-pill)}.prose a{overflow-wrap:anywhere}.prose figcaption{margin-top:var(--space-1);font-size:var(--text-xs);line-height:var(--leading-normal)}.prose figure{margin:.9rem 0}.prose img{border-width:var(--border-width)}.table-scroll{margin-inline:calc(-1 * var(--shell-gutter));padding-inline:var(--shell-gutter);width:calc(100% + var(--shell-gutter) * 2);max-width:none;border-left:0;border-right:0;box-sizing:border-box}.prose table{font-size:var(--text-xs)}.prose th,.prose td{padding:var(--space-2)}.prose .code-block,.prose>pre{margin:.9rem 0}}.chroma{background-color:var(--code-bg)}.prose :not(pre)>code{padding:.15em .4em;background:var(--code-bg);font-family:var(--font-functional);font-size:var(--text-sm)}.code-block{margin:1.8em 0;border:1px solid var(--border-default);background:var(--code-bg);max-width:100%;overflow:hidden}.code-block__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2)var(--space-3);border-bottom:var(--border-width)solid var(--border-default);background:var(--code-bar-bg);position:sticky;left:0}.code-block__lang{color:var(--text-meta);font:var(--text-xs)/1.4 var(--font-functional);letter-spacing:.12em;text-transform:uppercase}.code-block__lang:empty{display:none}.code-block__copy{display:none;padding:var(--space-2)var(--space-3);margin:calc(-1 * var(--space-1))calc(-1 * var(--space-2))calc(-1 * var(--space-1))0;min-height:var(--tap-min);min-width:var(--tap-min);border:0;border-radius:var(--radius);background:0 0;color:var(--text-meta);font:var(--text-xs)/1.4 var(--font-functional);letter-spacing:.08em;cursor:pointer;transition:color var(--dur-fast)var(--ease-out),background var(--dur-fast)var(--ease-out)}.js .code-block__copy{display:inline-flex;align-items:center;justify-content:center}.code-block__copy:hover,.code-block__copy:focus-visible{color:var(--accent);background:var(--accent-wash)}.code-block__copy.is-copied{color:var(--accent-strong)}.code-block__copy:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:1px}.code-block pre{margin:0;padding:var(--space-4)var(--space-5);overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border:0;background:0 0;font:var(--text-sm)/1.7 var(--font-functional);tab-size:2}.code-block pre:focus-visible,.prose>pre:focus-visible,.prose :not(.code-block)>.highlight>pre:focus-visible{outline:var(--border-width-thick)solid var(--focus-ring-color);outline-offset:calc(-1 * var(--border-width-thick))}.prose>pre,.prose :not(.code-block)>.highlight>pre{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;margin:1.8em 0;padding:var(--space-5);background:var(--code-bg);border:var(--border-width)solid var(--border-default);font:var(--text-sm)/1.7 var(--font-functional);max-width:100%}@media(max-width:720px){.code-block{margin:.7rem calc(-1 * var(--shell-gutter));width:calc(100% + var(--shell-gutter) * 2);border-left:0;border-right:0;box-sizing:border-box}.prose>pre,.prose :not(.code-block)>.highlight>pre{margin:.7rem calc(-1 * var(--shell-gutter));width:calc(100% + var(--shell-gutter) * 2);border-left:0;border-right:0;padding:var(--space-3)var(--shell-gutter);box-sizing:border-box}.code-block pre{padding:var(--space-2)var(--shell-gutter);font-size:var(--text-xs);line-height:var(--leading-loose)}.code-block__bar{padding:var(--space-1)var(--shell-gutter)}.code-block__lang{font-size:var(--text-xs)}.prose :not(pre)>code{font-size:var(--text-sm);overflow-wrap:anywhere;word-break:break-word}}.search-box{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-12);border-bottom:var(--border-width-thick)solid var(--border-strong);transition:border-color var(--dur-fast)var(--ease-out),box-shadow var(--dur-fast)var(--ease-out)}.search-box:focus-within{border-color:var(--accent);box-shadow:0 1px 0 var(--accent)}.search-box input{min-width:0;width:100%;border:0;padding:var(--space-4)0;background:0 0;color:var(--text-primary);font:var(--text-2xl)var(--font-functional);-webkit-appearance:none;appearance:none}.search-box input:focus-visible{outline:0}.search-box input::placeholder{color:var(--text-meta)}.search-box>span:last-child{flex:none;color:var(--text-meta);font:var(--text-xs)var(--font-functional);white-space:nowrap}.search-status{margin:var(--space-6)0;color:var(--text-secondary);font-size:var(--text-xs)}.search-results ul{margin:0;padding:0;list-style:none}.search-results li{border:0}.search-result{display:grid;gap:var(--space-2);padding:var(--space-6)0;transition:background-color var(--dur-base)var(--ease-out);border-radius:0}.search-result h2{margin:0;font-size:var(--step-2);letter-spacing:-.02em;transition:color var(--dur-fast)var(--ease-out)}.search-result span{color:var(--text-secondary);font:var(--text-sm)/1.7 var(--font-body)}.search-result small{color:var(--text-meta);font:var(--text-xs)var(--font-functional)}.search-result:hover,.search-result:focus-visible{background:var(--surface-veil)}.search-result:hover h2,.search-result:focus-visible h2{color:var(--accent);text-decoration:underline;text-underline-offset:var(--space-1)}.search-fallback{color:var(--text-secondary);font-size:var(--text-xs)}.search-fallback a{color:var(--accent);text-decoration:underline;text-underline-offset:var(--space-1)}@media(max-width:720px){.search-box{margin-top:var(--space-4);border-bottom-width:var(--border-width-thick)}.search-box input{min-height:var(--tap-min);padding:var(--space-2)0;font-size:var(--text-lg);line-height:var(--leading-snug)}.search-box>span:last-child{font-size:var(--text-xs)}.search-status{margin:var(--space-3)0;font-size:var(--text-xs)}.search-result{min-height:var(--tap-min);padding:var(--space-2)0;gap:var(--space-1)}.search-result h2{font-size:var(--text-sm);line-height:var(--leading-snug);overflow-wrap:anywhere}.search-result span{font-size:var(--text-xs);line-height:var(--leading-normal);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-result small{font-size:var(--text-xs)}}@media(max-width:380px){.search-box input{font-size:var(--text-base)}}.archive-year{padding:var(--space-7)0 var(--space-3);border-bottom:var(--border-width)solid var(--border-strong)}.archive-year:first-of-type{padding-top:var(--space-10)}.archive-year>h2{margin:0 0 var(--space-10);font-size:var(--text-4xl);letter-spacing:-.04em}.archive-year>h2 small{margin-left:var(--space-3);color:var(--text-meta);font:var(--text-xs)var(--font-functional)}.archive-month{display:grid;grid-template-columns:100px 1fr;margin-bottom:var(--space-9)}.archive-month h3{margin:var(--space-1)0 0;color:var(--text-secondary);font:var(--text-xs)var(--font-functional)}.archive-month a{display:grid;grid-template-columns:48px 1fr;gap:var(--space-3);padding:var(--space-3)0;border-bottom:var(--border-width)solid var(--border-default)}.archive-month a span{transition:color var(--dur-fast)var(--ease-out)}.archive-month a:hover span,.archive-month a:focus-visible span{color:var(--accent);text-decoration:underline;text-underline-offset:var(--space-1)}.archive-month time{color:var(--text-meta);font:var(--text-xs)var(--font-functional)}@media(max-width:720px){.archive-year{padding:var(--space-5)0 var(--space-2);border-bottom-width:var(--border-width)}.archive-year:first-of-type{padding-top:var(--space-5)}.archive-year>h2{margin-bottom:var(--space-4);font-size:var(--text-2xl);letter-spacing:-.03em}.archive-month{grid-template-columns:1fr;gap:var(--space-1);margin-bottom:var(--space-4)}.archive-month h3{margin:0;padding-top:var(--space-1);font-size:var(--text-xs)}.archive-month a{min-height:var(--tap-min);align-items:center;padding:var(--space-2)0;gap:var(--space-2);border-bottom-width:var(--border-width)}.archive-month a span{font-size:var(--text-sm);line-height:var(--leading-snug)}}.site-footer{border-top:var(--border-width)solid var(--border-default);padding-bottom:env(safe-area-inset-bottom,0px)}.site-footer__inner{min-height:var(--space-10);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);color:var(--text-secondary);font-size:var(--text-xs)}.site-footer nav{display:flex;gap:var(--space-5);flex-wrap:wrap}.site-footer a{display:inline-flex;align-items:center;min-height:var(--space-6);text-decoration:underline;text-decoration-color:var(--border-default);text-decoration-thickness:var(--border-width);text-underline-offset:var(--space-1);transition:color var(--dur-fast)var(--ease-out),text-decoration-color var(--dur-fast)var(--ease-out)}.site-footer a:hover,.site-footer a:focus-visible{color:var(--accent);text-decoration-color:var(--accent)}@media(max-width:720px){.site-footer__inner{min-height:0;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-3);padding-block:var(--space-3);font-size:var(--text-xs);line-height:var(--leading-normal);flex-wrap:nowrap}.site-footer nav{gap:var(--space-3)}.site-footer a{min-height:var(--tap-min);text-underline-offset:3px}}.error-page{position:relative;min-height:72vh;padding-block:var(--space-10);overflow:hidden}.error-page .ripple-art{z-index:-1;width:420px;height:420px;opacity:.26}.error-page h1{max-width:820px;margin:0;font-size:var(--display-error);line-height:var(--leading-tight);letter-spacing:-.06em}.error-page>p:not(.eyebrow){max-width:560px;margin:var(--space-8)0 0;color:var(--text-secondary);font:18px/1.8 var(--font-body)}.error-page__links{display:flex;flex-wrap:wrap;gap:var(--space-10);margin-top:var(--space-6)}.about-page{padding-bottom:var(--space-10)}.about-page__content{max-width:var(--measure);padding-top:var(--space-8)}@media(max-width:720px){.error-page{min-height:0;padding:var(--space-6)0 var(--space-5)}.error-page .ripple-art{display:none}.error-page h1{font-size:clamp(28px,9vw,38px);line-height:var(--leading-tight)}.error-page>p:not(.eyebrow){margin-top:var(--space-3);font-size:var(--text-sm);line-height:var(--leading-normal)}.error-page__links{gap:var(--space-3);margin-top:var(--space-4)}.about-page{padding-bottom:var(--space-5)}.about-page__content{padding-top:var(--space-4)}}@keyframes nav-reveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes coin-flight{0%,2%{opacity:1;transform:translate(0,0)}8%{opacity:1;transform:translate(29.76px,-68.32px)}14%{opacity:1;transform:translate(61.44px,-92.48px)}20%{opacity:1;transform:translate(95.04px,-72.48px)}26%{opacity:1;transform:translate(130.56px,-8.32px)}32%{opacity:1;transform:translate(168px,100px)}34%,100%{opacity:0;transform:translate(168px,100px)}}@keyframes coin-spin{0%,2%{transform:scale(.82)rotate(0)}8%{transform:scale(.82)rotate(62deg)}14%{transform:scale(.82)rotate(124deg)}20%{transform:scale(.82)rotate(186deg)}26%{transform:scale(.82)rotate(248deg)}32%,100%{transform:scale(.82)rotate(310deg)}}@keyframes splash-rise{0%,31%{opacity:0;transform:scale(.35)}35%{opacity:.68;transform:scale(1)}40%{opacity:.38;transform:scale(1.1)}45%,100%{opacity:0;transform:scale(1.18)}}@keyframes impact-pulse{0%,31%{opacity:.35;transform:scale(.7)}35%{opacity:1;transform:scale(1.5)}44%,100%{opacity:.65;transform:scale(1)}}@keyframes annotation-cycle{0%,32%{opacity:0}40%,100%{opacity:.38}}@keyframes ripple-one{0%,32%{opacity:0;transform:scale(.25)}36%{opacity:.92}40%,100%{opacity:.82;transform:scale(1)}}@keyframes ripple-two{0%,34%{opacity:0;transform:scale(.28)}39%{opacity:.78}44%,100%{opacity:.68;transform:scale(1)}}@keyframes ripple-three{0%,37%{opacity:0;transform:scale(.3)}43%{opacity:.46}48%,100%{opacity:.38;transform:scale(1)}}@keyframes ripple-four{0%,40%{opacity:0;transform:scale(.32)}47%{opacity:.54}52%,100%{opacity:.44;transform:scale(1)}}@keyframes ripple-five{0%,44%{opacity:0;transform:scale(.34)}51%{opacity:.38}56%,100%{opacity:.3;transform:scale(1)}}@keyframes ripple-six{0%,48%{opacity:0;transform:scale(.36)}55%{opacity:.3}60%,100%{opacity:.2;transform:scale(1)}}@keyframes guide-cycle{0%,32%{opacity:.72}40%,100%{opacity:0}}@keyframes trail-reveal{0%,2%{stroke-dashoffset:100}8%{stroke-dashoffset:92}14%{stroke-dashoffset:80}20%{stroke-dashoffset:64}26%{stroke-dashoffset:44}32%{stroke-dashoffset:22}34%,40%{stroke-dashoffset:0}41%,100%{stroke-dashoffset:100}}@keyframes rise-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes ink-settle{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.skip-link,.skip-link::before,.skip-link::after{transition-duration:var(--dur-base)!important}.wish-drop *{animation:none!important}}@media print{.site-header,.reading-progress,.back-to-top,.toc,.article-tags,.related,.site-footer nav,.hero__nav,.wish-drop,.ripple-art,.skip-link,.code-block__copy{display:none!important}body{background:#fff;color:#000;font-size:12pt}.page-shell,.article-layout{display:block;width:auto}.article-header h1,.hero h1,.page-header h1{font-size:22pt}.prose a{color:#000;text-decoration:underline}.prose a[href^=http]::after{content:" (" attr(href)")";font-size:9pt;word-break:break-all}.code-block,.prose pre{border:1px solid #ccc;white-space:pre-wrap}}