.ascii-art{margin:24px 0;padding:0;overflow-x:auto;font-family:dejavu sans mono,liberation mono,noto sans mono,monospace;font-size:18px;line-height:1.2;white-space:pre;color:var(--on-surface)}@media(max-width:767px){.ascii-art{font-size:10px}}@media(max-width:420px){.ascii-art{font-size:8px}}.content pre{position:relative;margin:24px 0;padding:16px 18px;background:var(--surface-container-low);border:1px solid var(--outline-variant);border-radius:var(--border-radius);overflow-x:auto;font-size:14px;line-height:1.65;tab-size:2}.content pre code{display:block;padding:0;background:0 0;border-radius:0;color:var(--on-surface);font-size:inherit;white-space:pre}.content .highlight{margin:24px 0}.content .highlight pre{margin:0;background:var(--surface-container-low);border:1px solid var(--outline-variant);box-shadow:none}.content .code-block{position:relative}.content .code-copy-btn{position:absolute;top:8px;right:8px;z-index:1;padding:4px 10px;font-family:var(--font-family-paragraph);font-size:12px;line-height:1.4;color:var(--on-surface-variant);background:var(--surface-container-high);border:1px solid var(--outline-variant);border-radius:var(--border-radius-small);cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease,background .15s ease}.content .code-block:hover .code-copy-btn,.content .code-copy-btn:focus-visible{opacity:1}.content .code-copy-btn:hover{color:var(--on-surface);border-color:var(--outline)}.content .code-copy-btn.is-copied{color:var(--primary);opacity:1}.social-link.social-copy{background:0 0;border:none;padding:0;cursor:pointer;color:var(--on-surface);font-size:14px;font-weight:400;font-family:inter,sans-serif;text-transform:lowercase;transition:all .2s ease}.social-link.social-copy:hover{color:var(--primary);text-decoration:underline}.contact-social-item.social-copy{background:var(--surface-container-low);cursor:pointer;text-align:left;font:inherit;color:inherit;width:100%}.contact-social-item.social-copy:hover{background:var(--surface-container);border-color:var(--outline)}:root{--primary:#00FF00;--on-primary:#381e72;--primary-container:#4f378b;--on-primary-container:#eaddff;--secondary:#cbc2db;--on-secondary:#332d41;--secondary-container:#4a4458;--on-secondary-container:#e8def8;--tertiary:#efb8c8;--on-tertiary:#492532;--tertiary-container:#633b48;--on-tertiary-container:#ffd8e4;--error:#ffb4ab;--on-error:#690005;--error-container:#93000a;--on-error-container:#ffdad6;--surface:#000000;--on-surface:#e6e0e9;--on-surface-variant:#cac4d0;--surface-container-lowest:#262626;--surface-container-low:#3D3D3D;--surface-container:#4F4F4F;--surface-container-high:#5C5C5C;--surface-container-highest:#BABABA;--outline:#938f99;--outline-variant:#49454f}.footer-credit{margin:0 0 16px;font-size:14px;color:var(--on-surface-variant)}.menu-main>ul>li>a{white-space:nowrap}.content h2,.content h3,.content h4,.intro h2{color:var(--primary)}.intro h1{font-size:clamp(48px,10vw,165px);overflow-wrap:break-word}.content h1{font-size:clamp(28px,6vw,40px);overflow-wrap:break-word}.intro,.intro-content,.content{overflow-wrap:break-word;word-break:break-word}:root{--nav-font:"DejaVu Sans Mono", "Liberation Mono", "Noto Sans Mono", monospace}.menu-main{font-family:var(--nav-font);font-size:15px}.menu-main>ul::before{content:"$";margin-right:10px;color:var(--primary)}.menu-main>ul>li{margin-right:8px}.menu-main>ul>li>a{padding:5px 8px;border-radius:var(--border-radius-small);color:var(--on-surface-variant);text-decoration:none;transition:color .15s ease,background-color .15s ease}.menu-main>ul>li>a::before{content:"[";margin-right:2px}.menu-main>ul>li>a::after{content:"]";margin-left:2px}.menu-main>ul>li.active>a{color:var(--primary);font-weight:700}.menu-main>ul>li.active>a::before{content:">";margin-right:5px}.menu-main>ul>li.active>a::after{content:"";margin-left:0}.menu-main>ul>li>a:hover{background:var(--primary);color:var(--on-primary);text-decoration:none}.menu-main-mobile ul li a{font-family:var(--nav-font);font-size:1.5rem}.menu-main-mobile ul li a::before{content:"[ "}.menu-main-mobile ul li a::after{content:" ]"}.menu-main-mobile ul li a:hover{opacity:1;color:var(--primary)}.menu-main-mobile ul li.active a{color:var(--primary)}.content table{width:100%;border-collapse:collapse;margin:20px 0;font-size:16px;line-height:1.5;color:var(--on-surface)}.content th,.content td{border:1px solid var(--outline);padding:8px 12px;text-align:left}.content th{font-weight:600}.tag-badges{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none}.tag-badges li{margin:0;list-style:none}.tag-badges a.tag-badge{display:inline-block;padding:2px 10px;border:1px solid var(--outline-variant);border-radius:999px;color:var(--on-surface-variant);background:0 0;font-size:12px;line-height:1.7;letter-spacing:.02em;text-decoration:none;transition:color .15s ease,border-color .15s ease,background .15s ease}.tag-badges a.tag-badge:hover{color:var(--primary);border-color:var(--primary);background:var(--surface-container-low)}.tag-chips{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 40px;padding:0}.tag-chips a.tag-chip{display:inline-flex;align-items:baseline;gap:8px;padding:6px 12px;border:1px solid var(--outline-variant);border-radius:999px;color:var(--on-surface);background:var(--surface-container-low);font-size:14px;line-height:1.4;text-decoration:none;transition:color .15s ease,border-color .15s ease,background .15s ease}.tag-chips a.tag-chip:hover,.tag-chips a.tag-chip.is-active{color:var(--primary);border-color:var(--primary);background:var(--surface-container)}.tag-chips a.tag-chip.is-active{font-weight:500}.tag-chip-count{color:var(--on-surface-variant);font-size:12px;transition:color .15s ease}.tag-chips a.tag-chip:hover .tag-chip-count,.tag-chips a.tag-chip.is-active .tag-chip-count{color:var(--primary)}.tag-chips a.tag-chip-all{background:0 0}@media(max-width:767px){.tag-chips{margin-bottom:32px}}.post-toc{position:sticky;top:0;z-index:5;margin-bottom:32px;padding:12px 0;border-top:1px solid var(--outline-variant);border-bottom:1px solid var(--outline-variant);background:var(--surface);overflow-x:auto;scrollbar-width:thin}.post-toc ul{display:flex;gap:20px;margin:0;padding:0;list-style:none;white-space:nowrap}.post-toc a{text-decoration:none;font-size:15px}.post-toc a:hover{text-decoration:underline}.post-toc a.active{font-weight:700}.content h1,.content h2,.content h3,.content h4{scroll-margin-top:72px}@media(max-width:766px){.post-toc{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}}.custom{background:red}