@font-face{font-family:zpixa;font-style:normal;font-weight:400;src:url(../fonts/zpix_fusion.woff2)format("woff2")}@font-face{font-family:fusion;font-style:normal;font-weight:400;src:url(../fonts/fusion.woff2)format("woff2")}@font-face{font-family:dos;font-style:normal;font-weight:400;src:url(../fonts/Fixedsys500c.woff)format("woff")}@font-face{font-family:dos-c;font-style:normal;font-weight:400;src:url(../fonts/ipix.woff2)format("woff2")}:root{color-scheme:light;--paper:#fbfaf6;--paper-2:#f3f0e9;--ink:#2f3038;--ink-soft:#77736d;--rule:#c9c2b8;--grid:rgba(47, 48, 56, 0.055);--accent:#b64f5c;--accent-strong:#9f3f4b;--accent-2:#3d8597;--accent-3:#ddb54e;--window-edge:color-mix(in srgb, var(--ink) 28%, var(--paper));--window-bar:var(--paper-2);--window-bar-fg:var(--ink-soft);--window-dot-1:color-mix(in srgb, var(--accent) 45%, var(--window-bar));--window-dot-2:color-mix(in srgb, var(--accent-3) 55%, var(--window-bar));--window-dot-3:color-mix(in srgb, var(--accent-2) 45%, var(--window-bar));--dot:color-mix(in srgb, var(--ink) 10%, transparent);--grain:color-mix(in srgb, #000 14%, transparent);--marker:color-mix(in srgb, var(--ink) 8%, transparent);--marker-strong:color-mix(in srgb, var(--ink) 13%, transparent);--marker-yellow:rgba(221, 181, 78, 0.45);--tag-bg:var(--window-bar);--tag-fg:var(--ink-soft);--key-face:var(--paper);--key-side:color-mix(in srgb, var(--ink) 9%, var(--paper));--key-edge:color-mix(in srgb, var(--ink) 30%, var(--paper));--key-legend:var(--ink-soft);--outline-ink:var(--ink);--outline-width:1px;--lift:3px;--frame-shadow:color-mix(in srgb, var(--ink) 7%, transparent);--shadow-raise:var(--lift) var(--lift) 0 var(--frame-shadow);--photo-mat:var(--paper);--photo-frame:0 0 0 4px var(--photo-mat),
    0 0 0 5px var(--window-edge),
    var(--lift) var(--lift) 0 5px var(--frame-shadow);--zoom-overlay:color-mix(in srgb, var(--paper) 94%, transparent);--code-block-bg:color-mix(in srgb, var(--paper-2) 45%, var(--paper));--mask-bg:var(--ink);--selection-text:#fff;--crt-overlay:linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.14) 50%),
    linear-gradient(90deg, rgba(255, 0, 0, 0.03), rgba(0, 255, 0, 0.01), rgba(0, 0, 255, 0.03));--crt-opacity:0.18;--crt-shadow:inset 0 0 42px rgba(0, 0, 0, 0.2);--font-body:"ZpixA", "fusion", "DOS-c";--font-ui:"DOS", "DOS-c", "ZpixA";--fs-2xs:0.625rem;--fs-xs:0.75rem;--fs-sm:0.875rem;--fs-md:1.125rem;--fs-lg:1.25rem;--fs-xl:1.5rem;--fs-body:1.0625rem;--reading-leading:1.7;--content-max-width:74ch;--page-gutter:clamp(1rem, 4vw, 1.5rem);--grid-size:16px;--spine-width:5.5rem;--dock-size:4.5rem;--space-text:0.625rem;--space-block:1rem;--space-subsection:1.5rem;--space-section:1.75rem;--motion-fast:120ms;--motion-normal:200ms;--motion-slide:300ms;--ease-out:cubic-bezier(0.33, 1, 0.68, 1);text-autospace:normal}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--paper:#141416;--paper-2:#1c1c1f;--ink:#e4e1da;--ink-soft:#9c988f;--rule:#38383d;--grid:rgba(255, 255, 255, 0.028);--accent:#e3929b;--accent-strong:#eeadb4;--accent-2:#86bccb;--accent-3:#d9b867;--window-edge:#34343a;--window-bar:#1c1c1f;--dot:color-mix(in srgb, var(--ink) 8%, transparent);--grain:color-mix(in srgb, #000 30%, transparent);--marker:color-mix(in srgb, var(--ink) 10%, transparent);--marker-strong:color-mix(in srgb, var(--ink) 16%, transparent);--marker-yellow:rgba(217, 184, 103, 0.28);--frame-shadow:rgba(0, 0, 0, 0.55);--photo-mat:var(--paper-2);--outline-ink:color-mix(in srgb, var(--ink) 85%, var(--paper));--zoom-overlay:color-mix(in srgb, var(--paper) 96%, transparent);--key-side:#0d0d0f;--key-edge:#3a3a40;--code-block-bg:#18181b;--mask-bg:var(--ink);--selection-text:#141416;--crt-overlay:linear-gradient(rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.22) 50%),
      linear-gradient(90deg, rgba(255, 0, 0, 0.025), rgba(0, 255, 0, 0.012), rgba(0, 0, 255, 0.025));--crt-opacity:0.14;--crt-shadow:inset 0 0 64px rgba(0, 0, 0, 0.5)}}*,*::before,*::after{box-sizing:border-box}html{overflow-y:scroll;scrollbar-width:none;font-family:var(--font-body);font-size:1rem;line-height:var(--reading-leading);-webkit-text-size-adjust:100%!important;text-size-adjust:100%!important}body{margin:0;color:var(--ink);background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:var(--grid-size)var(--grid-size);background-attachment:fixed;font-kerning:normal;font-synthesis:none;text-rendering:optimizeLegibility}*{cursor:default!important}::selection{background:var(--accent);color:var(--selection-text)}::-webkit-scrollbar{display:none;width:0;height:0}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:1px dashed var(--accent);outline-offset:3px}hr{height:1px;margin:var(--space-section)0;border:0;background:repeating-linear-gradient(90deg,var(--rule) 0 8px,transparent 8px 12px)}article a{--link-underline:1px;background-image:linear-gradient( color-mix(in srgb,var(--accent) 55%,transparent),color-mix(in srgb,var(--accent) 55%,transparent) );background-repeat:no-repeat;background-position:0 100%;background-size:100% var(--link-underline);box-decoration-break:clone;-webkit-box-decoration-break:clone;transition:color var(--motion-fast)ease,background-size var(--motion-normal)var(--ease-out)}article a:hover{--link-underline:2px;color:var(--accent);background-image:linear-gradient(var(--accent),var(--accent))}article a:visited{color:color-mix(in srgb,var(--accent) 60%,var(--ink))}article a:has(img),.media-figure>a{background:0 0}article strong{font-weight:700}article em{font-style:normal;text-emphasis:filled dot var(--accent);-webkit-text-emphasis:filled dot var(--accent);text-emphasis-position:over right;-webkit-text-emphasis-position:over right}article del{color:var(--ink-soft);text-decoration-line:line-through;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-decoration-skip-ink:none}article mark{color:inherit;background:linear-gradient(transparent 45%,var(--marker-yellow) 45%)}article ruby rt{color:var(--ink-soft);font-family:var(--font-ui);font-size:var(--fs-2xs);letter-spacing:.05em}article kbd{display:inline-block;margin:0 .1em;padding:0 .35em;font-size:var(--fs-sm);line-height:1.4;vertical-align:.1em}ul:not(.pagination){list-style:none;padding-left:2ch}ul:not(.pagination)>li{position:relative}ul:not(.pagination)>li::before{content:"・";position:absolute;inset-inline-start:-2ch;color:var(--accent);font-weight:700}ol{padding-inline-start:2em}ol>li::marker{color:var(--accent);font-family:var(--font-ui)}article :where(ul,ol) :where(ul,ol){margin-block:.25rem}article li>p{margin-block:.25rem}article li+li{margin-top:.2rem}article li:has(>input[type=checkbox])::before{content:none}article input[type=checkbox]{margin:0 .45em 0 0;accent-color:var(--accent)}dl{margin-block:var(--space-text)}dt{color:var(--accent);font-weight:700}dd{margin:.25rem 0 .7rem 2ch}blockquote{position:relative;width:fit-content;max-width:100%;margin:var(--space-block)0;padding:.3rem 1.05rem;background-image:radial-gradient(var(--dot) .6px,transparent 1px);background-size:4px 4px}blockquote::before,blockquote::after{position:absolute;color:var(--accent);font-size:1.25rem;line-height:1}blockquote::before{content:"「";top:.5rem;left:-.2rem}blockquote::after{content:"」";right:-.2rem;bottom:.5rem}blockquote p{margin:.2rem 0}blockquote blockquote{margin:.25rem 0;padding:.15rem .65rem;background:0 0}blockquote blockquote::before,blockquote blockquote::after{color:var(--ink-soft);font-size:1rem}@keyframes cursor-blink{50%{opacity:0}}table{display:block;width:max-content;max-width:100%;margin-inline:auto;border:1px solid var(--window-edge);border-collapse:collapse;overflow-x:auto;overscroll-behavior-inline:contain;font-size:var(--fs-sm);box-shadow:var(--shadow-raise)}table th,table td{padding:.35rem .75rem;text-align:left}table th+th{border-left:1px solid color-mix(in srgb,var(--tag-fg) 25%,transparent)}table td+td{border-left:1px dashed var(--rule)}table tr+tr td{border-top:1px dashed var(--rule)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tag,.post-header .post-date,.log-page article>h2,.error-label{color:var(--tag-fg);background:var(--tag-bg);font-family:var(--font-ui);font-weight:400;letter-spacing:.06em}.post-toc-label,table th{color:var(--window-bar-fg);background:var(--window-bar);font-family:var(--font-ui);font-weight:400;letter-spacing:.06em}.tag,.post-header .post-date,.log-page article>h2,.error-label{display:inline-block;padding:.05rem .45rem;border:1px solid var(--window-edge);font-size:var(--fs-xs);line-height:1.5}.tag--outline,.draft-label{display:inline-block;padding:0 .35rem;border:1px solid var(--accent);color:var(--accent);background:0 0;box-shadow:none;font-family:var(--font-ui);font-size:var(--fs-2xs);line-height:1.6;letter-spacing:.08em;vertical-align:.15em}.keycap,article kbd,.pagination .page-link{border:1px solid var(--key-edge);color:var(--key-legend);background:var(--key-face);box-shadow:inset 0 -2px 0 var(--key-side),0 1px 0 var(--key-edge);font-family:var(--font-ui);transition:transform 80ms var(--ease-out),box-shadow 80ms var(--ease-out),color var(--motion-fast)ease}:is(.keycap,.pagination a.page-link):hover{color:var(--accent)}:is(.keycap,.pagination a.page-link):active{box-shadow:inset 0 -1px 0 var(--key-side),0 0 0 var(--key-edge);transform:translateY(1px)}.marker,article strong{background-image:linear-gradient(transparent 62%,var(--marker) 62%);box-decoration-break:clone;-webkit-box-decoration-break:clone}.page{min-height:100svh}.content{display:flex;flex-direction:column;width:100%;max-width:calc(var(--content-max-width) + 2 * var(--page-gutter));min-height:100svh;margin:0 auto;padding:0 var(--page-gutter);background:var(--paper);box-shadow:1px 0 0 var(--rule),-1px 0 0 var(--rule);overflow-wrap:break-word}.content>main{flex:1 0 auto;min-width:0;padding-bottom:2.5rem}article{min-width:0;font-size:var(--fs-body);hanging-punctuation:first last;line-height:var(--reading-leading)}article :where(p,li,dd,figcaption,blockquote){overflow-wrap:anywhere}.site-spine{position:sticky;top:0;z-index:40;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;padding:.75rem var(--page-gutter).6rem;color:var(--ink);background:var(--paper);border-bottom:1px solid var(--rule);transition:transform var(--motion-slide)var(--ease-out),border-color var(--motion-slide)var(--ease-out)}html.spine-hidden .site-spine{transform:translateY(-100%)}.spine-title{font-size:1.5rem;line-height:1.2;letter-spacing:.08em}.spine-title,.error-page .error-code{color:transparent;-webkit-text-stroke:var(--outline-width)var(--outline-ink);paint-order:stroke fill;transition:-webkit-text-stroke-color var(--motion-fast)ease}.spine-title:hover{-webkit-text-stroke-color:var(--accent)}@media(max-width:1023px){.spine-title{color:var(--ink);-webkit-text-stroke:0}.spine-title:hover{color:var(--accent)}}.spine-nav{display:flex;align-items:baseline;font-family:var(--font-ui);font-size:1rem;letter-spacing:.06em}.spine-nav .nav-sep{margin:0 .5rem;color:var(--rule)}.spine-nav a{padding:0 .15rem}.spine-nav a:hover{color:var(--accent)}.spine-nav a[aria-current=page]{background-image:linear-gradient(transparent 58%,var(--marker) 58%)}@media(min-width:1024px){.site-spine{position:fixed;top:0;bottom:0;left:0;width:var(--spine-width);flex-direction:column;flex-wrap:nowrap;justify-content:space-between;align-items:center;padding:1.5rem 0;background:0 0;border-bottom:0;border-right:1px solid var(--rule)}html.spine-hidden .site-spine{transform:translateX(-100%);border-right-color:transparent}.spine-title,.spine-nav{writing-mode:vertical-rl}.spine-title{font-size:3rem;letter-spacing:.15em}.spine-nav .nav-sep{margin:.6rem 0}.spine-nav a{padding:.2rem 0;transition:color var(--motion-fast)ease}.spine-nav a[aria-current=page]{color:var(--accent);background-image:none}}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;padding:.9rem 0 calc(1.25rem + env(safe-area-inset-bottom,0px))}html.has-audio-dock .site-footer{padding-bottom:calc(var(--dock-size) + 1.25rem + env(safe-area-inset-bottom,0px));background:repeating-linear-gradient(90deg,var(--rule) 0 8px,transparent 8px 12px)top/100% 1px no-repeat}.footer-social{display:flex;flex-wrap:wrap;gap:.65rem}.soc{display:inline-flex;color:var(--ink-soft);transition:color var(--motion-fast)ease,transform var(--motion-normal)var(--ease-out)}.soc svg{display:block;width:20px;height:20px;fill:currentColor}.soc:hover{color:var(--accent);transform:translateY(-2px)}.no-ai-logo{display:block;line-height:0}.no-ai-logo img{width:128px;height:auto;margin:0}h1,h2,h3,h4,h5,h6{position:relative;font-family:inherit;line-height:1.4;letter-spacing:.01em;text-wrap:balance;overflow-wrap:anywhere;scroll-margin-top:1.5rem}h1{font-size:var(--fs-lg);font-weight:700}h2{font-size:var(--fs-md);font-weight:700}h3{font-size:1rem;font-weight:700}h4{font-size:1rem;font-weight:600}h5{font-size:1rem;font-weight:600}h6{font-size:var(--fs-sm);font-weight:600;color:var(--ink-soft);letter-spacing:.04em}article>h1{width:fit-content;max-width:100%;padding:.1rem .65rem;color:var(--ink);background:var(--window-bar);box-shadow:inset 3px 0 0 var(--accent)}article>h2{width:fit-content;background-image:linear-gradient(transparent 60%,var(--marker-strong) 60%)}article>:is(h3,h4)::before{margin-right:.45em;color:var(--accent);font-size:.75em;font-weight:400;vertical-align:.1em}article>h3::before{content:"◆"}article>h4::before{content:"◇"}article :where(h3,h4,h5,h6):target{color:var(--accent)}article>h1:target{box-shadow:inset 3px 0 0 var(--accent-2)}.site-description{width:fit-content;margin:0;color:var(--ink-soft)}.post-header{display:grid;gap:.75rem;margin:0 calc(-1 * var(--page-gutter));padding:1.5rem var(--page-gutter).875rem;border-bottom:1px solid var(--rule)}.post-header .meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0}.post-header time{font:inherit;color:inherit}.post-header h1.title{margin:0;font-size:var(--fs-xl);font-weight:700;line-height:1.4}.body{margin-top:1.25rem}article>:where(p,ul,ol){margin-block:var(--space-text)}article>:where(.callout,.highlight,.katex-display,.mermaid-scroll,table,.collapsible){margin-block:var(--space-block)}article>:where(h1,h2){margin:var(--space-section)0 .5rem}article>h3{margin:var(--space-subsection)0 .375rem}article>:where(h4,h5,h6){margin:var(--space-block)0 .375rem}article>:where(h1,h2,h3,h4,h5,h6)+*{margin-top:0}article>:first-child{margin-top:0!important}article>:last-child{margin-bottom:0}a[href^="#fn:"],a[href^="#fnref:"]{color:var(--accent);background-image:none}a[href^="#fn:"]{font-family:var(--font-ui);font-size:var(--fs-xs);vertical-align:super;line-height:0}a[href^="#fn:"]::before{content:"※"}.footnotes{margin-top:var(--space-section);color:color-mix(in srgb,var(--ink) 85%,var(--ink-soft));font-size:var(--fs-sm)}.footnotes hr{margin-bottom:1rem}.footnotes ol{list-style:none;counter-reset:footnote;padding-inline-start:2.6em}.footnotes li{position:relative;counter-increment:footnote}.footnotes li::before{content:"※" counter(footnote);position:absolute;inset-inline-start:-2.6em;color:var(--accent);font-family:var(--font-ui)}.footnotes li:target{background:var(--marker)}.post-nav{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1fr);gap:.75rem 1.5rem;margin-top:var(--space-section);padding-top:1rem;border-top:1px dashed var(--rule);font-size:var(--fs-sm)}.post-nav a{display:grid;gap:.15rem;min-width:0}.post-nav .post-nav-next{grid-column:2;text-align:right}.post-nav-label{color:var(--ink-soft);font-family:var(--font-ui);font-size:var(--fs-xs);letter-spacing:.08em}.post-nav-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--motion-fast)ease}.post-nav a:hover .post-nav-title{color:var(--accent)}@media(max-width:480px){.post-nav{grid-template-columns:1fr}.post-nav .post-nav-next{grid-column:1}}@media(max-width:1023px){.post-header{padding-top:1rem}.body{margin-top:1rem}}img{display:block;max-width:100%;margin:0 auto;border:0}article>img,.media-figure img,.media-figure video.media-item{box-shadow:var(--photo-frame)}.responsive-embed,.media-embed{box-shadow:0 0 0 1px var(--window-edge),var(--shadow-raise)}.pixel-reveal-pending{object-position:-99999px 0}.pixel-reveal-frame{position:relative}.pixel-reveal-canvas{position:absolute;z-index:1;display:block;image-rendering:pixelated;pointer-events:none}figure.media-figure{width:100%;margin:calc(var(--space-block) + .5rem)auto;text-align:center}article>:is( .media-figure--wide,.media-embed--wide,.media-figure--full,div:has(>iframe[src*="youtube.com/embed"]),div:has(>iframe[src*="youtube-nocookie.com/embed"]) ){position:relative;left:50%;max-width:calc(100vw - 1rem);transform:translateX(-50%)}article>:is( .media-figure--wide,.media-embed--wide,div:has(>iframe[src*="youtube.com/embed"]),div:has(>iframe[src*="youtube-nocookie.com/embed"]) ){width:min(calc(100% + 2 * var(--page-gutter)),100vw)}@media(max-width:720px){article>figure.media-figure--wide:has(img){left:auto;width:100%;transform:none}}article>.media-figure--full{width:min(74rem,calc(100vw - 1rem))}article>.media-figure img,article>.media-figure .media-item{width:auto;max-width:100%;height:auto}article>img,article>.media-figure :is(img,video.media-item){--frame-reach:calc(5px + var(--lift));max-width:min(var(--media-max,100%),calc(100% - 2 * var(--frame-reach)))}article>.media-figure video.media-item{width:100%}.media-item{display:block;max-width:100%;margin:0 auto;background:#000}.media-embed,.responsive-embed,.mermaid-scroll{width:100%;margin-block:var(--space-block)}.responsive-embed{position:relative;aspect-ratio:16/9}.responsive-embed iframe{position:absolute;inset:0;width:100%;height:100%}.mermaid-scroll{overflow-x:auto;text-align:center}.mermaid-scroll>.mermaid{min-width:600px}.masonry-gallery{display:flex;flex-wrap:wrap;justify-content:center;width:100%;margin-inline:auto;gap:1.25rem}.masonry-gallery-item{display:flex;justify-content:center;width:100%;margin-inline:auto}article .media-figure .caption code{margin:0;padding:0;border:0;background:0 0}.media-figure .caption{margin:.9rem 0 0;color:var(--ink-soft);font-size:var(--fs-sm);line-height:1.4;text-align:center}.media-figure .caption::before{content:"▲ ";color:var(--accent);font-size:.75em}.media-figure .caption p{display:inline;margin:0}.media-figure .caption a{--link-underline:1px}.medium-zoom-overlay{z-index:2}.medium-zoom-image--opened{z-index:3}.dateDisplay{display:flex;align-items:center;justify-content:center}.digit{margin:0;padding:0;border:0;max-width:10%;max-height:10rem}.twitter-tweet-rendered{display:block;margin-inline:auto}.katex-display{max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}article :where(iframe,video,audio,embed,object,svg){max-width:100%}article iframe{border:0}iframe.spotify{color-scheme:light;border-radius:12px}.bg{color:#575279}.chroma{color:#575279;-webkit-text-size-adjust:none}.chroma .err{color:#ab526c}.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:#e1dbd5}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e6e6e}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e6e6e}.chroma .line{display:flex}.chroma .k{color:#286983}.chroma .kc{color:#286983}.chroma .kd{color:#286983}.chroma .kn{color:#7e649b}.chroma .kp{color:#286983}.chroma .kr{color:#286983}.chroma .kt{color:#286983}.chroma .n{color:#a65a54}.chroma .na{color:#a65a54}.chroma .nc{color:#457780}.chroma .no{color:#9e6210}.chroma .nd{color:#706c8a}.chroma .ni{color:#a65a54}.chroma .ne{color:#286983}.chroma .nl{color:#a65a54}.chroma .nn{color:#a65a54}.chroma .nx{color:#575279}.chroma .py{color:#a65a54}.chroma .nt{color:#a65a54}.chroma .nb{color:#a65a54}.chroma .bp{color:#a65a54}.chroma .nv{color:#a65a54}.chroma .vc{color:#a65a54}.chroma .vg{color:#a65a54}.chroma .vi{color:#a65a54}.chroma .vm{color:#a65a54}.chroma .nf{color:#a65a54}.chroma .fm{color:#a65a54}.chroma .l{color:#9e6210}.chroma .ld{color:#9e6210}.chroma .s{color:#9e6210}.chroma .sa{color:#9e6210}.chroma .sb{color:#9e6210}.chroma .sc{color:#9e6210}.chroma .dl{color:#9e6210}.chroma .sd{color:#9e6210}.chroma .s2{color:#9e6210}.chroma .se{color:#286983}.chroma .sh{color:#9e6210}.chroma .si{color:#9e6210}.chroma .sx{color:#9e6210}.chroma .sr{color:#9e6210}.chroma .s1{color:#9e6210}.chroma .ss{color:#9e6210}.chroma .m{color:#9e6210}.chroma .mb{color:#9e6210}.chroma .mf{color:#9e6210}.chroma .mh{color:#9e6210}.chroma .mi{color:#9e6210}.chroma .il{color:#9e6210}.chroma .mo{color:#9e6210}.chroma .o{color:#706c8a}.chroma .ow{color:#706c8a}.chroma .or{color:#706c8a}.chroma .p{color:#706c8a}.chroma .c{color:#726c82}.chroma .ch{color:#726c82}.chroma .cm{color:#726c82}.chroma .c1{color:#726c82}.chroma .cs{color:#726c82}.chroma .cp{color:#726c82}.chroma .cpf{color:#726c82}.chroma .gd{color:#ab526c}.chroma .ge{font-style:italic}.chroma .gi{color:#457780}.chroma .gs{font-weight:700}.chroma .gu{color:#7e649b}@media(prefers-color-scheme:dark){.bg{color:#e0def4}.chroma{color:#e0def4;-webkit-text-size-adjust:none}.chroma .err{color:#eb6f92}.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:#39374a}.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:#3e8fb0}.chroma .kc{color:#3e8fb0}.chroma .kd{color:#3e8fb0}.chroma .kn{color:#c4a7e7}.chroma .kp{color:#3e8fb0}.chroma .kr{color:#3e8fb0}.chroma .kt{color:#3e8fb0}.chroma .n{color:#ea9a97}.chroma .na{color:#ea9a97}.chroma .nc{color:#9ccfd8}.chroma .no{color:#f6c177}.chroma .nd{color:#908caa}.chroma .ni{color:#ea9a97}.chroma .ne{color:#3e8fb0}.chroma .nl{color:#ea9a97}.chroma .nn{color:#ea9a97}.chroma .nx{color:#e0def4}.chroma .py{color:#ea9a97}.chroma .nt{color:#ea9a97}.chroma .nb{color:#ea9a97}.chroma .bp{color:#ea9a97}.chroma .nv{color:#ea9a97}.chroma .vc{color:#ea9a97}.chroma .vg{color:#ea9a97}.chroma .vi{color:#ea9a97}.chroma .vm{color:#ea9a97}.chroma .nf{color:#ea9a97}.chroma .fm{color:#ea9a97}.chroma .l{color:#f6c177}.chroma .ld{color:#f6c177}.chroma .s{color:#f6c177}.chroma .sa{color:#f6c177}.chroma .sb{color:#f6c177}.chroma .sc{color:#f6c177}.chroma .dl{color:#f6c177}.chroma .sd{color:#f6c177}.chroma .s2{color:#f6c177}.chroma .se{color:#3e8fb0}.chroma .sh{color:#f6c177}.chroma .si{color:#f6c177}.chroma .sx{color:#f6c177}.chroma .sr{color:#f6c177}.chroma .s1{color:#f6c177}.chroma .ss{color:#f6c177}.chroma .m{color:#f6c177}.chroma .mb{color:#f6c177}.chroma .mf{color:#f6c177}.chroma .mh{color:#f6c177}.chroma .mi{color:#f6c177}.chroma .il{color:#f6c177}.chroma .mo{color:#f6c177}.chroma .o{color:#908caa}.chroma .ow{color:#908caa}.chroma .or{color:#908caa}.chroma .p{color:#908caa}.chroma .c{color:#6e6a86}.chroma .ch{color:#6e6a86}.chroma .cm{color:#6e6a86}.chroma .c1{color:#6e6a86}.chroma .cs{color:#6e6a86}.chroma .cp{color:#6e6a86}.chroma .cpf{color:#6e6a86}.chroma .gd{color:#eb6f92}.chroma .ge{font-style:italic}.chroma .gi{color:#9ccfd8}.chroma .gs{font-weight:700}.chroma .gu{color:#c4a7e7}}code{font-family:var(--font-ui)}article :not(pre)>code{margin:0 .15em;padding:0 .3em;border:1px solid var(--rule);background:var(--paper-2);overflow-wrap:anywhere}article a code{border:0;background:0 0;margin:0;padding:0}pre{margin:0;overflow-x:auto;overscroll-behavior-inline:contain}pre code{font-size:100%}.highlight{--titlebar:1.75rem;--code-line:1.5rem;--gutter-pad:0.75rem;position:relative;padding-top:var(--titlebar);border:1px solid var(--window-edge);background:var(--window-bar);box-shadow:var(--shadow-raise);-webkit-overflow-scrolling:touch}.highlight::after{--dot-size:6px;--dot-gap:10px;content:"";position:absolute;top:calc((var(--titlebar) - var(--dot-size))/2);left:.75rem;width:var(--dot-size);height:var(--dot-size);background:var(--window-dot-1);box-shadow:var(--dot-gap)0 0 var(--window-dot-2),calc(2 * var(--dot-gap))0 0 var(--window-dot-3)}.highlight>.chroma,.chroma{margin:0;padding:.75rem 0;border:0;border-top:1px solid var(--window-edge);border-radius:0;background-color:var(--code-block-bg);line-height:var(--code-line);tab-size:4}.highlight>.chroma{background:linear-gradient(to left,var(--code-block-bg) 30%,transparent)100%/2rem 100% no-repeat local,linear-gradient(to left,color-mix(in srgb,var(--ink) 4%,transparent),transparent)100%/.75rem 100% no-repeat,var(--code-block-bg)}.chroma .line{display:flex}.chroma .cl{flex:1 0 auto;padding-inline:1rem 1.5rem}.chroma .ln{position:sticky;left:0;z-index:1;flex:none;min-width:calc(3ch + 2 * var(--gutter-pad));margin:0;padding:0 var(--gutter-pad);border-right:1px solid color-mix(in srgb,var(--window-edge) 70%,transparent);color:color-mix(in srgb,var(--ink-soft) 70%,var(--code-block-bg));background:var(--code-block-bg);text-align:right;user-select:none}.chroma .hl{display:flex;background-color:var(--marker)}.chroma .hl .ln{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--code-block-bg))}.highlight ::selection{background:var(--marker-strong);color:inherit}.code-copy{position:absolute;top:0;right:0;display:flex;align-items:center;gap:.4rem;height:var(--titlebar);padding:0 .75rem;border:0;color:var(--window-bar-fg);background:0 0;font-family:var(--font-ui);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;opacity:.7;transition:color var(--motion-fast)ease,opacity var(--motion-fast)ease}.highlight:hover .code-copy,.code-copy:focus-visible{opacity:1}.code-copy:hover{color:var(--accent)}.code-copy .px-icon{width:12px;height:12px}.code-copy.is-done{color:var(--accent-2);opacity:1}.highlight pre code[data-lang]::before{content:attr(data-lang);position:absolute;top:0;left:calc(.75rem + 6px + 2 * 10px + .9rem);color:var(--window-bar-fg);font-family:var(--font-ui);font-size:var(--fs-xs);line-height:var(--titlebar);letter-spacing:.1em;text-transform:uppercase}.highlight pre code:is([data-lang=fallback],[data-lang=""])::before{content:none}.highlight pre code:is([data-lang=cpp],[data-lang="c++"],[data-lang=cc])::before{content:"C++"}.highlight pre code:is([data-lang="c#"],[data-lang="C#"],[data-lang=csharp],[data-lang=cs])::before{content:"C#"}.highlight pre code:is([data-lang=javascript],[data-lang=javaScript],[data-lang=js])::before{content:"JS"}.highlight pre code:is([data-lang=typescript],[data-lang=ts])::before{content:"TS"}.highlight pre code:is([data-lang=python],[data-lang=python3],[data-lang=py])::before{content:"PY"}.highlight pre code:is([data-lang=shell],[data-lang=bash],[data-lang=sh],[data-lang=zsh],[data-lang=console])::before{content:"SHELL"}.highlight pre code:is([data-lang=yml],[data-lang=yaml])::before{content:"YAML"}.highlight pre code:is([data-lang=markdown],[data-lang=md])::before{content:"MARKDOWN"}.highlight pre code:is([data-lang=tex],[data-lang=TeX],[data-lang=TEX],[data-lang=latex],[data-lang=LaTeX])::before{content:"LATEX"}.highlight pre code[data-lang=dockerfile]::before{content:"DOCKER"}.post-toc{color:var(--ink-soft);font-family:var(--font-ui);font-size:var(--fs-xs);line-height:1.35}.post-toc[hidden]{display:none!important}.post-toc--desktop:not([hidden]){animation:toc-pop var(--motion-normal)var(--ease-out)}@keyframes toc-pop{from{opacity:0;transform:translateY(-4px)}}.post-toc--desktop{position:fixed;top:0;left:0;z-index:20;display:block;width:min(11rem,calc(100vw - 1rem));min-width:min(9rem,calc(100vw - 1rem));min-height:min(6rem,calc(100vh - 1rem));max-width:calc(100vw - 1rem);max-height:calc(100vh - 1rem);overflow:hidden}.post-toc-card{border:1px solid var(--window-edge);color:var(--ink);background:var(--paper);box-shadow:var(--shadow-raise)}.post-toc-label{letter-spacing:.14em}.post-toc-card nav{max-height:min(60vh,26rem);overflow-x:hidden;overflow-y:auto;padding-block:.42rem;scrollbar-width:none}.post-toc-header{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.5rem;min-height:2rem;padding:.42rem .55rem;background:var(--window-bar);border-bottom:1px solid var(--window-edge)}ul.post-toc-list{margin:0;padding:0;list-style:none}ul.post-toc-list>li{--toc-indent:0.42rem;width:100%;margin:0}ul.post-toc-list>li::before{display:none}.post-toc-level-1>a{font-weight:700}.post-toc a{display:flex;align-items:baseline;width:100%;padding:.28rem .42rem .28rem var(--toc-indent);border-block:1px solid transparent;color:inherit;text-decoration:none;overflow-wrap:anywhere;transition:color var(--motion-fast)ease,background-color var(--motion-fast)ease,border-color var(--motion-fast)ease}.post-toc-branch{flex:none;margin-right:.35em;color:var(--rule);font-family:var(--font-ui);white-space:pre}.post-toc a:is(:hover,.is-active) .post-toc-branch{color:var(--accent)}.post-toc-text{min-width:0}.post-toc a:is(:hover,.is-active){color:var(--ink);border-color:color-mix(in srgb,var(--accent) 24%,var(--rule))}.post-toc a:hover{background:color-mix(in srgb,var(--accent) 9%,var(--paper))}.post-toc a.is-active{background:color-mix(in srgb,var(--accent) 12%,var(--paper));font-weight:700}.post-toc--desktop .post-toc-card{position:relative;display:flex;flex-direction:column;width:100%;max-height:inherit;min-height:0}.post-toc--desktop .post-toc-header{flex:none;user-select:none}.post-toc--desktop .post-toc-card nav{flex:auto;min-height:0}.post-toc--desktop.is-user-sized .post-toc-card{height:100%}.post-toc--desktop.is-user-sized .post-toc-card nav{max-height:none;padding-bottom:.9rem}.post-toc-resize-handle{position:absolute;right:0;bottom:0;z-index:1;width:1.1rem;height:1.1rem;touch-action:none;cursor:nwse-resize!important;background:linear-gradient( 135deg,transparent 0 46%,var(--rule) 46% 52%,transparent 52% 64%,var(--accent) 64% 70%,transparent 70% )}html.has-context-toc{-webkit-touch-callout:none}.site-description{margin-top:1.5rem;font-size:var(--fs-body)}.list{margin-top:1.25rem}.year-group+.year-group{margin-top:var(--space-section)}.year-heading{display:flex;align-items:center;gap:.9rem;margin:0 0 .75rem}.year-heading .year-label{padding:.05rem .55rem .2rem;font-size:var(--fs-sm);font-weight:400;line-height:1.4;letter-spacing:.08em}.post-list-entry{--leader:var(--rule);font-size:var(--fs-body);position:relative;display:grid;grid-template-columns:minmax(0,max-content)minmax(0,1fr)auto;align-items:baseline;gap:.6rem;padding:.2rem .35rem}.post-list-entry::before{content:"›";position:absolute;top:.2rem;left:-.6rem;color:var(--accent);font-family:var(--font-ui);line-height:1.6;opacity:0;transform:translateX(-4px);transition:opacity var(--motion-fast)ease,transform var(--motion-normal)var(--ease-out);pointer-events:none}.list-item{color:var(--ink);line-height:1.6;transition:color var(--motion-fast)ease}.list-item:focus-visible{outline:none}.list-item::after{content:"";position:absolute;inset:0}.list-item:visited{color:color-mix(in srgb,var(--ink) 70%,var(--paper))}.entry-title .draft-label{margin-left:.5rem}.entry-leader{align-self:end;height:.55em;margin-bottom:.45em;background:radial-gradient(circle,var(--leader) 1px,transparent 1.5px)0/6px 6px repeat-x}.entry-date{color:var(--ink-soft);font-family:var(--font-ui);font-size:var(--fs-sm);white-space:nowrap;transition:color var(--motion-fast)ease}:is(.post-list-entry:hover,.post-list-entry:has(.list-item:focus-visible)){--leader:color-mix(in srgb, var(--accent) 55%, var(--rule))}:is(.post-list-entry:hover,.post-list-entry:has(.list-item:focus-visible))::before{opacity:1;transform:none}:is(.post-list-entry:hover,.post-list-entry:has(.list-item:focus-visible)) :is(.list-item,.entry-date){color:var(--accent)}.entry-title{transition:transform 80ms var(--ease-out)}.post-list-entry:active .entry-title{transform:translateY(1px)}@media(max-width:480px){.post-list-entry{grid-template-columns:minmax(0,1fr)auto;gap:.4rem;padding-inline:0}.entry-leader{display:none}.entry-date{font-size:var(--fs-xs)}}@media(max-width:1023px){.site-description,.list{margin-top:1rem}}.pagination{display:grid;grid-template-columns:minmax(0,1fr)auto minmax(0,1fr);align-items:center;gap:.75rem;margin:2rem 0 .25rem}.pagination .page-item{display:flex;min-width:0}.pagination .page-prev{justify-content:flex-start}.pagination .page-next{justify-content:flex-end}.pagination .page-link{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .7rem;font-size:var(--fs-xs);letter-spacing:.08em}.pagination .page-link.is-disabled{color:var(--ink-soft);border-color:var(--rule);box-shadow:0 2px 0 var(--rule);opacity:.6}.pagination .page-link-arrow{color:var(--accent)}.pagination .page-status{margin:0;color:var(--ink-soft);font-family:var(--font-ui);font-size:var(--fs-xs);letter-spacing:.08em;white-space:nowrap}.pagination .page-status strong{color:var(--accent);font-weight:400}@media(max-width:480px){.pagination{grid-template-columns:1fr 1fr}.pagination .page-status{grid-column:1/-1;grid-row:1;justify-self:center}.pagination .page-item{grid-row:2}}.collapsible{box-sizing:border-box;margin:var(--space-block)0;border:1px solid var(--window-edge);box-shadow:var(--shadow-raise)}.collapsible .bar{position:relative;display:block;padding:.55rem 3rem .55rem .8rem;background:var(--paper-2);user-select:none;transition:color var(--motion-fast)ease}.collapsible .bar::-webkit-details-marker{display:none}.collapsible .bar::marker{content:""}.collapsible .bar::after{content:"";position:absolute;top:50%;right:1.1rem;width:7px;height:7px;border-right:2px solid var(--ink-soft);border-bottom:2px solid var(--ink-soft);transform:translateY(-70%)rotate(45deg);transform-origin:50% 50%;transition:transform var(--motion-slide)var(--ease-out),border-color var(--motion-fast)ease}.collapsible[open]:not(.is-closing)>.bar::after{transform:translateY(-30%)rotate(225deg)}.collapsible .bar:hover{color:var(--accent)}.collapsible .bar:hover::after{border-color:var(--accent)}.collapsible .collapsible-content{padding:.75rem .9rem;border-top:1px dashed var(--rule)}.collapsible.is-animating{overflow:hidden}.collapsible .collapsible-content>:first-child{margin-top:0}.collapsible .collapsible-content>:last-child{margin-bottom:0}.callout{--callout-color:var(--accent);position:relative;padding:.75rem 1rem .75rem 1.25rem;background:color-mix(in srgb,var(--callout-color) 6%,var(--paper));background-image:repeating-linear-gradient( to bottom,var(--callout-color) 0 4px,color-mix(in srgb,var(--callout-color) 55%,var(--paper)) 4px 5px );background-size:4px 100%;background-repeat:no-repeat}.callout-note,.callout-tip{--callout-color:var(--accent-2)}.callout-label{display:block;margin-bottom:.35rem;color:var(--callout-color);background:0 0;font-family:var(--font-ui);font-size:var(--fs-xs);font-weight:400;letter-spacing:.1em;line-height:1.5;text-transform:uppercase}.callout>:first-child,.callout>div>:first-child{margin-top:0}.callout>:last-child,.callout>div>:last-child{margin-bottom:0}.moe-mask{display:inline-block;padding:0 4px;color:transparent;background-color:var(--mask-bg);transition:color .3s ease,background-color .3s ease}.moe-mask:hover{color:inherit;background-color:transparent}article>.moe-mask{display:table;margin-block:var(--space-text)}.log-page article>h2{display:table;margin:var(--space-section)0 .75rem;font-size:var(--fs-xs)}.log-page article>h2::before{content:none}.log-page article>h2:first-child{margin-top:0}.error-page{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;text-align:center}.error-page .error-label{margin:0}.error-page .error-code{margin:.25rem 0 0;font-size:clamp(3rem,18vw,7rem);line-height:1;--outline-width:2px}.error-page p{margin:0}.error-page .error-return{margin:.5rem 0 1rem;padding:.3rem .8rem;font-size:var(--fs-xs);letter-spacing:.08em}.error-page img{width:min(18rem,70vw)}.px-icon{display:block;width:16px;height:16px;fill:currentColor}:is(.audio-player,.video-player,.video-clip) button{display:inline-grid;place-items:center;flex:none;margin:0;padding:4px;border:0;color:var(--ink-soft);background:0 0;font:inherit;transition:color var(--motion-fast)ease,background-color var(--motion-fast)ease,opacity var(--motion-normal)var(--ease-out),transform var(--motion-normal)var(--ease-out)}:is(.audio-player,.video-player,.video-clip) button:hover,:is(.audio-player,.video-player) button.is-on{color:var(--accent)}:is(.ap-time,.vp-time){flex:none;color:var(--ink-soft);font-family:var(--font-ui);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;letter-spacing:.04em;white-space:nowrap}.seek{--seek:0;position:relative;display:flex;flex:auto;align-items:center;min-width:3rem;height:16px;touch-action:none}.seek:focus-visible{outline:1px dashed var(--accent);outline-offset:3px}.seek-track{position:relative;width:100%;height:4px;overflow:hidden;background:color-mix(in srgb,var(--ink) 10%,transparent)}.seek-buffer,.seek-fill{position:absolute;inset:0;transform-origin:left center}.seek-buffer{background:color-mix(in srgb,var(--ink) 12%,transparent);transform:scaleX(0);transition:transform var(--motion-slide)var(--ease-out)}.seek-fill{background:var(--accent);transform:scaleX(var(--seek));transition:transform 250ms linear}.seek-thumb{position:absolute;top:50%;left:calc(var(--seek) * 100%);width:8px;height:8px;margin:-4px 0 0 -4px;background:var(--accent);box-shadow:0 0 0 2px var(--paper);opacity:0;transition:left 250ms linear,opacity var(--motion-fast)ease}.seek:hover .seek-thumb,.seek:focus-visible .seek-thumb,.seek.is-dragging .seek-thumb{opacity:1}.seek.is-dragging :is(.seek-fill,.seek-thumb){transition:none}.audio-player:not(.is-enhanced) audio{display:block;width:100%;margin-block:var(--space-block)}.audio-player.is-enhanced{display:grid;grid-template-columns:4.5rem minmax(0,1fr);margin:var(--space-block)0;border:1px solid var(--window-edge);background:var(--code-block-bg);box-shadow:var(--shadow-raise)}.audio-player audio{display:none}.ap-cover{position:relative;aspect-ratio:1;overflow:hidden;border-right:1px solid var(--window-edge);background:var(--window-bar)}.ap-cover img{width:100%;height:100%;margin:0;object-fit:cover}.audio-player button.ap-play{position:absolute;top:50%;left:50%;width:32px;height:32px;border:1px solid var(--window-edge);color:var(--ink);background:color-mix(in srgb,var(--paper) 88%,transparent);transform:translate(-50%,-50%)}.audio-player button.ap-play:hover{color:var(--paper);background:var(--accent)}.audio-player.is-playing button.ap-play{opacity:0}.audio-player.is-playing .ap-cover:hover button.ap-play,.audio-player.is-playing button.ap-play:focus-visible{opacity:1}.ap-meter{position:absolute;bottom:6px;left:6px;display:flex;align-items:flex-end;gap:2px;height:10px;opacity:0;transition:opacity var(--motion-normal)ease}.ap-meter i{width:2px;height:100%;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.28);transform-origin:bottom;animation:ap-meter .9s steps(4,end)infinite;animation-play-state:paused}.ap-meter i:nth-child(2){animation-delay:-.3s;animation-duration:.7s}.ap-meter i:nth-child(3){animation-delay:-.6s;animation-duration:1.1s}.audio-player.is-playing .ap-meter{opacity:1}.ap-cover:not(:has(img)) .ap-meter i{background:var(--accent);box-shadow:none}.audio-player.is-playing .ap-meter i{animation-play-state:running}@keyframes ap-meter{0%,100%{transform:scaleY(.3)}25%{transform:scaleY(1)}50%{transform:scaleY(.6)}75%{transform:scaleY(.85)}}.ap-body{display:grid;align-content:center;gap:.3rem;min-width:0;padding:.5rem .75rem .45rem .9rem}.ap-meta{display:flex;align-items:baseline;gap:.5rem;min-width:0;overflow:hidden;min-height:1.25rem;line-height:1.25rem;white-space:nowrap}.ap-title{min-width:0;overflow:hidden;color:var(--ink);font-size:var(--fs-sm);font-weight:700;text-overflow:ellipsis}.ap-artist{flex:none;color:var(--ink-soft);font-size:var(--fs-xs)}.ap-artist::before{content:"/";margin-right:.5rem;color:var(--rule)}.ap-lyric{min-height:1.5em;overflow:hidden;color:var(--ink-soft);font-size:var(--fs-xs);line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.ap-lyric span{display:inline-block;animation:ap-lyric var(--motion-slide)var(--ease-out)}@keyframes ap-lyric{from{opacity:0;transform:translateY(4px)}}.ap-controls{display:flex;align-items:center;gap:.35rem;margin-right:-4px}.ap-controls .seek{margin-right:.4rem}.audio-player--dock.is-enhanced{--dock-body:min(22rem, calc(100vw - var(--dock-size) - 2.25rem));position:fixed;bottom:0;left:0;z-index:50;grid-template-columns:var(--dock-size)0 1.75rem;grid-template-rows:var(--dock-size);height:calc(var(--dock-size) + 1px + env(safe-area-inset-bottom,0px));margin:0;border-bottom:0;border-left:0;padding-bottom:env(safe-area-inset-bottom,0px);transition:grid-template-columns var(--motion-slide)var(--ease-out),left var(--motion-slide)var(--ease-out)}.audio-player--dock.is-open{grid-template-columns:var(--dock-size)var(--dock-body)1.75rem}.audio-player--dock .ap-cover{width:var(--dock-size)}.audio-player--dock .ap-body{overflow:hidden;gap:.25rem;padding-block:.75rem;opacity:0;transition:opacity var(--motion-normal)ease}.audio-player--dock.is-open .ap-body{opacity:1;transition-delay:80ms}.audio-player--dock .ap-lyric{display:none}.audio-player--dock .ap-title{font-size:1rem}.audio-player--dock button.ap-play{width:32px;height:32px}.audio-player button.ap-dock-toggle{height:100%;padding:0;border-left:1px solid var(--window-edge);background:var(--window-bar)}.ap-dock-toggle .px-icon{transition:transform var(--motion-slide)var(--ease-out)}.audio-player--dock.is-open .ap-dock-toggle .px-icon{transform:rotate(180deg)}@media(min-width:1024px){.audio-player--dock.is-enhanced{left:var(--spine-width)}html.spine-hidden .audio-player--dock.is-enhanced{left:0}}.video-player.is-enhanced .vp-window{position:relative;width:min(var(--media-max,100%),calc(100% - 2 * (1px + var(--lift))));margin:0 auto;border:1px solid var(--window-edge);background:var(--window-bar);box-shadow:var(--shadow-raise)}.vp-screen{position:relative;background:#000;line-height:0}.vp-screen video{display:block;width:100%;max-width:100%;height:auto;max-height:80vh;margin:0 auto;background:#000}.video-player button.vp-big-play{position:absolute;top:50%;left:50%;width:56px;height:56px;border:1px solid var(--window-edge);color:var(--accent);background:color-mix(in srgb,var(--paper) 92%,transparent);box-shadow:var(--shadow-raise);transform:translate(-50%,-50%)}.video-player button.vp-big-play .px-icon{width:32px;height:32px}.video-player button.vp-big-play:hover{color:var(--paper);background:var(--accent)}.video-player.is-playing button.vp-big-play{opacity:0;pointer-events:none;transform:translate(-50%,-50%)scale(.92)}.video-player.is-waiting .vp-screen::after{content:"LOADING █";position:absolute;top:.75rem;left:.75rem;padding:.1rem .4rem;color:var(--ink-soft);background:color-mix(in srgb,var(--paper) 88%,transparent);font-family:var(--font-ui);font-size:var(--fs-2xs);letter-spacing:.1em;line-height:1.6}.vp-bar{display:flex;align-items:center;gap:.35rem;padding:.2rem .4rem;border-top:1px solid var(--window-edge)}.vp-bar .seek{margin-inline:.4rem}.video-player.is-fullscreen{margin:0;background:#000}.video-player.is-fullscreen .vp-window{display:flex;flex-direction:column;width:100%;height:100%;border:0;box-shadow:none}.video-player.is-fullscreen .vp-screen{display:grid;flex:1;place-items:center;min-height:0}.video-player.is-fullscreen video{width:100%;height:100%;max-height:none;object-fit:contain}.video-player.is-fullscreen .caption{display:none}.video-clip .clip-screen{position:relative;width:min(var(--media-max,100%),calc(100% - 2 * (5px + var(--lift))));margin:0 auto;line-height:0}article>.video-clip .clip-screen video.media-item{width:100%;max-width:100%}.video-clip button.clip-toggle{position:absolute;right:10px;bottom:10px;width:28px;height:28px;border:1px solid var(--window-edge);color:var(--ink);background:color-mix(in srgb,var(--paper) 88%,transparent);opacity:0}.video-clip .clip-screen:hover button.clip-toggle,.video-clip button.clip-toggle:focus-visible,.video-clip.is-paused button.clip-toggle{opacity:1}@media(hover:none){.video-clip button.clip-toggle{opacity:.75}}@media(max-width:480px){.audio-player.is-enhanced:not(.audio-player--dock){grid-template-columns:4rem minmax(0,1fr)}.ap-controls button.ap-loop,.vp-bar button.vp-mute{display:none}}article>.pdf-window{width:100%;margin:var(--space-block)0;border:1px solid var(--window-edge);background:var(--window-bar);box-shadow:var(--shadow-raise)}.pdf-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:1.6rem;padding:0 .6rem;border-bottom:1px solid var(--window-edge);color:var(--window-bar-fg);font-family:var(--font-ui);font-size:var(--fs-xs);letter-spacing:.08em;line-height:1.6rem}.pdf-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-name::before{content:"PDF";margin-right:.6rem;padding:0 .3rem;border:1px solid var(--accent);color:var(--accent);font-size:var(--fs-2xs);vertical-align:.1em}.pdf-actions{display:flex;flex:none;gap:1rem}.pdf-page{min-width:0;color:var(--ink-soft);font-variant-numeric:tabular-nums}article .pdf-actions a{color:inherit;background:0 0;text-transform:uppercase;transition:color var(--motion-fast)ease}article .pdf-actions a:hover{color:var(--accent)}.pdf-embed{position:relative;display:flex;flex-direction:column;gap:1px;height:min(85vh,60rem);overflow-y:auto;overscroll-behavior:contain;background:var(--window-edge)}.pdf-sheet{position:relative;flex:none;width:100%;background:#fff}.pdf-sheet::before{content:"P." attr(data-page);position:absolute;inset:0;display:grid;place-items:center;color:color-mix(in srgb,var(--ink-soft) 45%,#fff);font-family:var(--font-ui);font-size:var(--fs-sm);letter-spacing:.1em}.pdf-sheet canvas{position:relative;display:block;width:100%;height:100%;opacity:0;transition:opacity var(--motion-slide)var(--ease-out)}.pdf-sheet.is-rendered canvas{opacity:1}.pdf-sheet.is-rendered::before{content:none}.pdf-frame{display:block;width:100%;height:100%;border:0;background:var(--paper)}.pdf-embed:not(.is-ready){align-items:center;justify-content:center;background:var(--code-block-bg)}.pdf-embed.is-failed{height:auto;min-height:6rem}.pdf-status{margin:0;color:var(--ink-soft);font-family:var(--font-ui);font-size:var(--fs-xs);letter-spacing:.08em}.pdf-embed:not(.is-ready):not(.is-failed) .pdf-status::after{content:"█";margin-left:.3em;color:var(--accent);animation:cursor-blink .6s steps(1,end)infinite}@media(prefers-color-scheme:dark){.pdf-sheet{background:#d9d7d1}.pdf-sheet canvas{filter:brightness(.86)}}.crt-overlay{position:fixed;inset:0;z-index:9998;background:var(--crt-overlay);background-size:100% 4px,8px 100%;box-shadow:var(--crt-shadow);opacity:var(--crt-opacity);pointer-events:none}.decrypt-cursor{display:inline-block;margin-left:4px;color:var(--accent);font-size:.85em;animation:cursor-blink .6s steps(1,end)infinite}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.post-list-entry:active .entry-title,:is(.keycap,.pagination a.page-link):active{transform:none!important}.crt-overlay{opacity:.12}}