:root{color-scheme:light;--color-ink:oklch(15% 0 0);--color-paper:oklch(99% 0 0);--color-paper-2:oklch(93.5% 0 0);--color-muted:oklch(42% 0 0);--color-wave:oklch(76% 0 0);--font-display:"Archivo", "Archivo Fallback", "Hiragino Sans", "Noto Sans JP", "Yu Gothic UI", Meiryo, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, "Hiragino Sans", "Noto Sans JP", monospace;--font-body:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", "Yu Gothic", Meiryo, system-ui, sans-serif;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-4xl:6rem;--gutter:clamp(1rem, 3.2vw, 2.5rem);--section-gap:clamp(4rem, 7vw, 6.5rem);--header-height:4.25rem;--frame:105rem;--column:52rem;--measure:42rem;--column-now:min(var(--column), calc(100vw - var(--gutter) * 2));--longest-word:8.7;--text-label:.75rem;--text-small:.9375rem;--text-body:1.0625rem;--text-lead:clamp(1.0625rem, 1rem + .25vw, 1.1875rem);--text-h3:clamp(1.25rem, 1.15rem + .5vw, 1.625rem);--text-h2:clamp(1.75rem, 1.3rem + 2.2vw, 3rem);--text-title:clamp(1.75rem, 1rem + 2.8vw, 3rem);--tracking-label:.14em;--tracking-wide:.24em;--rule-thin:2px;--rule-mid:4px;--rule-thick:24px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in:cubic-bezier(.55, 0, 1, .45);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.18s;--dur-mid:.32s;--dur-slow:.6s}@media (width>=48rem) and (width<=49.99rem){:root{--header-height:7.5rem}}@font-face{font-family:Archivo;src:url(/_astro/archivo-expanded-800.D9Nxdl1N.woff2)format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/_astro/jetbrains-mono-600.CByEq1eu.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Archivo Fallback;src:local(Arial Bold),local(Arial-BoldMT),local(Arial);font-weight:800;size-adjust:112%;ascent-override:78%;descent-override:19%;line-gap-override:0%}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--color-paper);overflow-x:clip}body{background:var(--color-paper);min-width:320px;color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-body);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.85;overflow-x:clip}html[lang=en] body{line-height:1.65}h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}img,svg{max-width:100%;display:block}img{height:auto}a{color:inherit}button{font:inherit;color:inherit}:focus-visible{outline-offset:3px;outline:3px solid}a:active,button:active{opacity:.72}::selection{background:var(--color-ink);color:var(--color-paper)}p,li,dd,h1,h2,h3,h4{word-break:auto-phrase;line-break:strict;overflow-wrap:anywhere;text-wrap:pretty}h1,h2,h3,h4{text-wrap:balance}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;top:var(--space-xs);left:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--color-paper);color:var(--color-ink);font-family:var(--font-mono);font-weight:600;font-size:var(--text-small);position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:none}.display{font-family:var(--font-display);letter-spacing:-.015em;text-transform:uppercase;overflow-wrap:anywhere;min-width:0;font-weight:800;line-height:1.04}.label{font-family:var(--font-mono);font-weight:600;font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;line-height:1.5}.name{text-transform:none}.muted{color:var(--color-muted)}.frame{width:100%;max-width:calc(var(--column) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.page-body{padding-block:clamp(2rem, 4vw, 3rem) var(--section-gap);gap:clamp(2rem,4vw,3rem);display:grid}main p,main dd{max-width:var(--measure)}.md>*+*{margin-top:var(--space-md)}.md h2{padding-top:var(--space-sm);border-top:var(--rule-thin) solid var(--color-ink);font-size:var(--text-h3);margin-top:clamp(2rem,4vw,3rem);font-weight:700;line-height:1.4}.md h2:first-child{margin-top:0}.md h2+*{margin-top:var(--space-xs)}.md h3{margin-top:var(--space-lg);font-size:var(--text-body);font-weight:700;line-height:1.6}.md h3+p{margin-top:0}.md ul{max-width:var(--measure);padding-left:1.25em;list-style:square}.md li+li{margin-top:var(--space-xs)}.md a{text-underline-offset:.25em;font-weight:700;text-decoration-thickness:2px}.md blockquote{max-width:var(--measure);margin:var(--space-lg) 0 0;font-size:var(--text-small);color:var(--color-muted)}.md table{border-collapse:collapse;width:100%}.md th,.md td{padding-block:var(--space-xs);text-align:left;vertical-align:top;font-weight:inherit}.md td:first-child{padding-right:var(--space-lg);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.md h2+.timeline{margin-top:var(--space-lg)}.timeline{--marker:1rem;--row-line:1.75rem;--marker-top:calc((var(--row-line) - var(--marker)) / 2)}.md .timeline td{padding-block:0 var(--space-xl);line-height:var(--row-line)}.md .timeline tr:last-child td{padding-bottom:0}.md .timeline td:first-child{width:1%;padding-right:var(--space-md);font-family:var(--font-display);font-size:clamp(1rem,.8rem + 1vw,1.5rem);font-weight:800}.md .timeline td:last-child{padding-left:calc(var(--marker) + var(--space-md));position:relative}.md .timeline td:last-child:before,.md .timeline td:last-child:after{content:"";background:var(--color-ink);position:absolute}.md .timeline td:last-child:before{inset-block:0;left:calc((var(--marker) - var(--rule-mid)) / 2);width:var(--rule-mid)}.md .timeline tr:first-child td:last-child:before{top:var(--marker-top)}.md .timeline tr:last-child td:last-child:before{height:var(--marker-top);bottom:auto}.md .timeline td:last-child:after{top:var(--marker-top);width:var(--marker);height:var(--marker);left:0}.md thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.subhead{margin-bottom:var(--space-xs);padding-top:var(--space-sm);border-top:var(--rule-thin) solid var(--color-ink);font-size:var(--text-h3);font-weight:700;line-height:1.4}.section{padding-block:var(--section-gap)}.prose>*+*{margin-top:var(--space-md)}.tags{gap:var(--space-2xs) var(--space-sm);font-family:var(--font-mono);font-weight:600;font-size:var(--text-label);letter-spacing:.04em;color:var(--color-muted);flex-wrap:wrap;line-height:1.6;display:flex}.motion-pending [data-hero-hide]{visibility:hidden}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}::view-transition-old(root){animation:page-out var(--dur-fast) var(--ease-in) both}::view-transition-new(root){animation:page-in var(--dur-mid) var(--ease-out) both}}@keyframes page-out{to{opacity:0;transform:translateY(-8px)}}@keyframes page-in{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.link{white-space:nowrap;font-family:var(--font-mono);font-weight:600;font-size:var(--text-small);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.5em;padding-block:.25em .5em;line-height:1.4;text-decoration:none;display:inline-flex;position:relative}.link:after{content:"";height:var(--rule-mid);transform-origin:100%;background:currentColor;position:absolute;inset:auto 0 0}.arrow{width:.8em;height:.8em;transition:transform var(--dur-fast) var(--ease-out);flex:none}@media (hover:hover){.link:hover:after,.link-group:hover .link:after{animation:underline-sweep var(--dur-slow) var(--ease-in-out)}.link:hover .arrow,.link-group:hover .arrow{transform:translate(3px,-3px)}}.link:active .arrow{transform:translate(1px,-1px)}@keyframes underline-sweep{0%{transform-origin:100%;transform:scaleX(1)}49%{transform-origin:100%;transform:scaleX(0)}50%{transform-origin:0;transform:scaleX(0)}to{transform-origin:0;transform:scaleX(1)}}@media print{[data-card],[data-fade],[data-rule]{opacity:1!important;transform:none!important}.sound,.menu-toggle{display:none!important}}.site-footer[data-astro-cid-jo6i4kqk]{padding-block:var(--space-md) var(--space-xl);border-top:var(--rule-mid) solid var(--color-ink)}.bottom[data-astro-cid-jo6i4kqk]{justify-content:space-between;align-items:center;gap:var(--space-xs) var(--space-xl);flex-wrap:wrap;display:flex}ul[data-astro-cid-jo6i4kqk]{gap:0 var(--space-md);flex-wrap:wrap;display:flex}a[data-astro-cid-jo6i4kqk]{min-height:2.75rem;font-family:var(--font-mono);font-weight:600;font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;white-space:nowrap;text-underline-offset:.35em;align-items:center;text-decoration:none;display:inline-flex}@media (hover:hover){a[data-astro-cid-jo6i4kqk]:hover{text-decoration:underline 2px}}.site-header[data-astro-cid-nen7h5rs]{z-index:20;background:var(--color-ink);color:var(--color-paper);view-transition-name:site-header;position:relative}.inner[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:var(--space-xs) var(--space-sm);width:100%;max-width:var(--frame);min-height:4rem;padding:var(--space-sm) var(--gutter);flex-wrap:wrap;margin-inline:auto;display:flex}.brand[data-astro-cid-nen7h5rs]{z-index:2;align-items:center;gap:var(--space-md);min-height:2.75rem;text-decoration:none;display:flex;position:relative}.mark[data-astro-cid-nen7h5rs]{flex:none;width:2.75rem;height:2.75rem}.divider[data-astro-cid-nen7h5rs]{background:currentColor;width:1px;height:2rem}.brand-text[data-astro-cid-nen7h5rs]{letter-spacing:var(--tracking-wide);white-space:nowrap}.menu-toggle[data-astro-cid-nen7h5rs]{z-index:2;min-width:2.75rem;min-height:2.75rem;padding-inline:var(--space-sm);cursor:pointer;background:0 0;border:2px solid;display:none;position:relative}.nav[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{gap:0 var(--space-md);flex-wrap:wrap;display:flex}.nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{min-height:2.75rem;padding-inline:var(--space-xs);font-family:var(--font-mono);font-weight:600;font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;white-space:nowrap;align-items:center;text-decoration:none;display:flex;position:relative}.nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:after{content:"";inset:auto 0 var(--space-2xs);transform-origin:100%;height:3px;transition:transform var(--dur-mid) var(--ease-out);background:currentColor;position:absolute;transform:scaleX(0)}.switch[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{min-width:2.75rem;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border:2px solid;justify-content:center}.switch[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:after{content:none}@media (hover:hover){.switch[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{background:var(--color-paper);color:var(--color-ink)}}@media (width>=48rem){.switch[data-astro-cid-nen7h5rs]{align-items:center;display:flex}.switch[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{min-height:2rem}}.nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]:after{transform:scaleX(1)}@media (hover:hover){.nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover:after{transform-origin:0;transform:scaleX(1)}}@media (width<=22.49rem){.brand[data-astro-cid-nen7h5rs]{gap:var(--space-sm)}.brand-text[data-astro-cid-nen7h5rs]{letter-spacing:.1em}}@media (width<=47.99rem){.js .menu-toggle[data-astro-cid-nen7h5rs]{display:block}.js .nav[data-astro-cid-nen7h5rs]{z-index:1;padding:var(--space-4xl) var(--gutter) var(--space-xl);background:var(--color-ink);visibility:hidden;opacity:0;transition:opacity var(--dur-fast) var(--ease-out), visibility 0s linear var(--dur-fast);align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.js .nav[data-astro-cid-nen7h5rs][data-open]{visibility:visible;opacity:1;transition:opacity var(--dur-fast) var(--ease-out), visibility 0s}.js .nav[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{gap:var(--space-xs);flex-direction:column;width:100%}.js .nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{font-family:var(--font-display);letter-spacing:-.01em;padding-inline:0;font-size:clamp(2rem,11vw,3.5rem);font-weight:800;line-height:1.1;display:inline-flex}}
