.sc{list-style:none;padding:0;margin:0;display:none}.sc.open{display:block}.si{margin:0}.sl{display:block;font-family:Sora,sans-serif;font-size:.82rem;font-weight:400;line-height:1.4;color:var(--fg-muted);text-decoration:none;padding:.42rem 1.5rem .42rem 0;white-space:normal;transition:background .1s}.sl:hover{background:#f4f4f4}.sl.current{font-weight:600;color:var(--fg);background:#f0f0f0}.st{display:flex;align-items:center;width:100%;background:none;border:none;cursor:pointer;padding:0;text-align:left;font:inherit}.st:hover .sl{background:#f4f4f4}.sa{flex-shrink:0;width:22px;font-size:.75rem;color:#aaa;display:inline-flex;align-items:center;justify-content:center;font-family:monospace;line-height:1}.st:hover .sa,.st.active .sa{color:#555}.st .sl{flex:1;min-width:0;padding-left:0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #ffffff;--fg: #343434;--fg-muted: #777777;--border: #e8e8e8;--link: rgb(49, 113, 222);--sidebar-width: 375px;--header-height: 64px;--font-body: "Sora", "Noto Sans JP", sans-serif;--font-code: "Google Sans Code", "Fira Mono", monospace}html[data-font=serif]{--font-body: "Lora", "Noto Serif JP", serif}html,body{background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:18px;line-height:1.7;min-height:100vh}.shell{display:flex;min-height:100vh}.topbar{position:fixed;top:0;left:0;right:0;height:var(--header-height);background:transparent;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;z-index:100;pointer-events:none}.topbar-controls{display:flex;align-items:center;background:#ffffffc2;border-radius:8px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);pointer-events:all}.topbar-controls-left{padding:.22rem}.topbar-controls-right{padding:.22rem .55rem}.topbar-toggle{display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:none;border:none;cursor:pointer;color:var(--fg);border-radius:5px;transition:background .15s;flex-shrink:0}.topbar-toggle:hover{background:#0000000f}.topbar-font-switcher{display:flex;align-items:center;gap:.25rem}.font-opt{background:none;border:none;cursor:pointer;padding:.2rem .1rem;font-size:.75rem;color:var(--fg-muted);letter-spacing:.01em;transition:color .15s}.font-opt:hover{color:var(--fg)}.font-opt.active{color:var(--fg);font-weight:600}.font-sep{color:#ccc;font-size:.75rem;user-select:none}.content-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .3rem;font-size:.75rem;color:var(--fg-muted);margin-bottom:2.1rem}.content-breadcrumb a{color:var(--fg-muted);text-decoration:none}.content-breadcrumb a:hover{color:var(--fg)}.content-breadcrumb .cb-sep{color:#ccc}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#00000014;z-index:98}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);background:var(--bg);overflow-y:auto;z-index:101;transform:translate(calc(-1 * var(--sidebar-width)));transition:transform .22s ease;padding:1rem 0 2rem}.shell.sidebar-open .sidebar,html.sidebar-open .sidebar{transform:translate(0);box-shadow:4px 0 24px #00000012}.shell.no-transition .sidebar,.shell.no-transition .main-wrap{transition:none!important}.shell.sidebar-open .sidebar-backdrop,html.sidebar-open .sidebar-backdrop{display:block}.main-wrap{flex:1;margin-top:var(--header-height);margin-left:0;transition:margin-left .22s ease;min-width:0}.shell.sidebar-open .main-wrap,html.sidebar-open .main-wrap{margin-left:var(--sidebar-width)}.main-inner{max-width:860px;margin:0 auto;padding:2em 2.5rem 5rem}.prose h1.page-title{font-size:3rem;font-weight:300;letter-spacing:-.03em;line-height:1.15;margin-bottom:3rem}.prose h1.page-title .title-en,.prose h1.page-title .title-ja{display:block}.prose h1.page-title .title-ja{margin-top:.3em}.prose h1{font-size:1.55rem;font-weight:600;letter-spacing:-.02em;line-height:1.25;margin-top:2.75rem;margin-bottom:1.6rem}.prose h2{font-size:1.25rem;font-weight:600;letter-spacing:-.02em;margin-top:2.25rem;margin-bottom:1.6rem}.prose h3{font-size:1.05rem;font-weight:600;margin-top:1.75rem;margin-bottom:1.2rem}.prose h1+h1,.prose h2+h2,.prose h3+h3{margin-top:-1rem;margin-bottom:1.6rem}.prose h1:not(.page-title),.prose h2,.prose h3{position:relative}.anchor-copy-btn{position:absolute;left:-1.9rem;width:1.9rem;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;background:none;border:none;cursor:pointer;padding:0;color:var(--fg-muted);transition:opacity .12s}.prose h1:not(.page-title)>.anchor-copy-btn{top:.46875rem}.prose h2>.anchor-copy-btn{top:.5625rem}.prose h3>.anchor-copy-btn{top:calc((1.05rem * 1.7 - 1rem) / 2)}.anchor-copy-btn .material-symbols-outlined{font-size:1rem;line-height:1;user-select:none}.prose h1:not(.page-title):hover>.anchor-copy-btn,.prose h2:hover>.anchor-copy-btn,.prose h3:hover>.anchor-copy-btn,.anchor-copy-btn:hover{opacity:1;pointer-events:auto}.prose h1:not(.page-title)+h1>.anchor-copy-btn,.prose h2+h2>.anchor-copy-btn,.prose h3+h3>.anchor-copy-btn{display:none}.prose p{margin-bottom:2.1rem}.prose a{color:var(--link);text-decoration:none}.prose a:hover{opacity:.75}.prose ul,.prose ol{padding-left:1.5rem;margin-bottom:2.1rem}.prose li{margin-bottom:.6rem}.prose li>ul,.prose li>ol{margin-top:.6rem;margin-bottom:0}.prose ul{list-style-type:"- "}.katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);height:1px;width:1px;overflow:hidden;padding:0;border:0}.prose blockquote{border-left:2px solid var(--border);padding-left:1rem;color:var(--fg-muted);margin:1rem 0}.prose code{font-family:var(--font-code);font-size:.87em;background:#f5f5f5;padding:.15em .35em;border-radius:3px}.prose pre{font-family:var(--font-code);font-size:.87em;background:#f5f5f5;border-radius:5px;padding:1.25rem;overflow-x:auto;margin:1.25rem 0}.prose pre code{background:none;padding:0}.prose img{max-width:100%;width:100%;height:auto;display:block;border-radius:4px;margin:3rem auto}.prose img[title="75"]{width:75%}.prose img[title="50"]{width:50%}.prose img[title="25"]{width:25%}.prose a:has(>img){display:block}.prose a:has(>img)+p,.prose img+p,.prose p:has(>a>img)+p,.prose p:has(>a>img)+p:has(>a>img)+p{font-size:.8em;color:var(--fg-muted);text-align:left;margin-top:-1.75rem;margin-bottom:2.75rem;line-height:1.5}.prose a:has(>img)+p a,.prose img+p a,.prose p:has(>a>img)+p a,.prose p:has(>a>img)+p:has(>a>img)+p a{color:var(--fg-muted);text-decoration:underline}.prose a:has(>img)+p a:hover,.prose img+p a:hover,.prose p:has(>a>img)+p a:hover,.prose p:has(>a>img)+p:has(>a>img)+p a:hover{color:var(--fg)}.prose .video-wrap{position:relative;width:100%;padding-bottom:56.25%;margin:3rem 0}.prose .video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:none;border-radius:4px}.prose .codepen-wrap{margin:3rem 0;border-radius:4px;overflow:hidden}.prose .codepen-wrap p.codepen{margin:0;border:none!important}.prose .codepen-wrap iframe{display:block;border-radius:4px;height:504px!important}.prose .video-embed{margin:2rem 0;aspect-ratio:16 / 9;width:100%}.prose .video-embed iframe{width:100%;height:100%;display:block;border:none;border-radius:4px}.prose .openprocessing-wrap{margin:3rem 0;border-radius:4px;overflow:hidden}.prose .openprocessing-wrap iframe{display:block;width:100%;border-radius:4px}.prose .local-video-wrap{margin:3rem 0}.prose .local-video-wrap video{width:100%;border-radius:4px;display:block}.prose .instagram-wrap{margin:3rem auto;max-width:540px}.prose .bookmark-card{margin:2rem 0;border:1px solid var(--border);border-radius:6px;overflow:hidden;transition:border-color .15s}.prose .bookmark-card:hover{border-color:#bbb}.prose .bookmark-link{display:flex;align-items:stretch;text-decoration:none;color:inherit;height:8em;overflow:hidden}.prose .bookmark-info{flex:1 1 0;min-width:0;padding:.85rem 1rem;display:flex;flex-direction:column;justify-content:space-between;gap:.3rem}.prose .bookmark-title{font-size:.88em;font-weight:500;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prose .bookmark-description{font-size:.78em;color:var(--fg-muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.5}.prose .bookmark-url{font-size:.72em;color:var(--fg-muted);display:flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prose .bookmark-url span{overflow:hidden;text-overflow:ellipsis}.prose .bookmark-favicon{width:14px!important;height:14px!important;flex-shrink:0;object-fit:contain;border-radius:0;margin:0;display:inline-block}.prose .bookmark-image{width:auto!important;height:100%;flex-shrink:0;object-fit:contain;display:block;border-radius:0;margin:0}@media (max-width: 540px){.prose .bookmark-image{display:none}}.prose .image-row{display:flex;gap:1em;align-items:flex-start}.prose .image-row figure{flex:1;margin:0}.prose .image-row img{width:100%;height:auto}.prose hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.prose table{width:100%;border-collapse:collapse;margin:1.25rem 0;font-size:.9em}.prose th,.prose td{border:1px solid var(--border);padding:.5rem .75rem;text-align:left}.prose th{font-weight:600;background:#fafafa}.prose figure img{margin:0}.prose figure{margin-bottom:2rem}.prose figcaption{font-size:.8em;color:#666;margin-top:.5rem;margin-bottom:2rem;line-height:1.5}.prose figure img+figcaption,.prose figure img+*+figcaption{margin-top:-2rem;margin-bottom:3rem}.prose table.matrix-table{width:auto;font-family:var(--font-code);font-size:.85em}.prose table.matrix-table td{text-align:left;padding:.3rem .75rem;min-width:3rem}.prose details{border:1px solid var(--border);border-radius:4px;padding:.5rem .75rem;margin:.75rem 0}.prose summary{cursor:pointer;font-weight:500}.prose aside{display:flex;gap:.75rem;background:#f7f7f7;border-radius:6px;padding:.9rem 1rem;margin:1.25rem 0;font-size:.875rem;line-height:1.6}.prose aside .aside-icon{flex-shrink:0;font-size:1.1rem;line-height:1.6}.prose aside .aside-body>*+*{margin-top:.35rem}.prose aside .aside-body p{margin:0}.prose aside .aside-body a{text-decoration:underline}.site-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:4rem;padding-top:1.25rem;border-top:1px solid var(--border);font-size:.8rem;color:var(--fg-muted)}.site-footer a{color:var(--fg-muted);text-decoration:none}.site-footer a:hover{color:var(--fg)}.site-footer-left,.site-footer-right{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.site-footer-feedback{width:100%;line-height:1.6}@media (max-width: 768px){.shell.sidebar-open .main-wrap,html.sidebar-open .main-wrap{margin-left:0}.main-inner{padding:1.5rem 1.25rem 3rem}.prose h1{font-size:1.5rem}}
