﻿*{margin:0;padding:0;box-sizing:border-box}:root{--bg-color: #0a0a0a;--text-color: #e0e0e0;--logo-color: #ffffff;--header-border: #333333;--back-link-color: #888888;--back-link-hover-color: #fafafa;--h1-color: #ffffff;--meta-color: #666666;--tag-color: #4a9eff;--content-p-color: #ccc;--hr-color: #555555;--content-link-color: #4a9eff;--content-link-hover-color: #6bb3ff;--h2-color: #ffffff;--code-bg: #151515;--code-border: #2a2a2a;--code-text: #e0e0e0;--code-keyword: #ff79c6;--code-function: #50fa7b;--code-string: #f1fa8c;--code-type: #8be9fd;--code-comment: #6272a4;--copy-btn-bg: #2a2a2a;--copy-btn-border: #3a3a3a;--copy-btn-text: #888888;--copy-btn-hover-bg: #3a3a3a;--copy-btn-hover-text: #ffffff;--toggle-btn-color: #888888;--toggle-btn-hover-color: #ffffff;--toggle-btn-hover-bg: rgba(255, 255, 255, 0.1);--expo-in: linear( 0 0%, 0.0085 31.26%, 0.0167 40.94%, 0.0289 48.86%, 0.0471 55.92%, 0.0717 61.99%, 0.1038 67.32%, 0.1443 72.07%, 0.1989 76.7%, 0.2659 80.89%, 0.3465 84.71%, 0.4419 88.22%, 0.554 91.48%, 0.6835 94.51%, 0.8316 97.34%, 1 100% );--mask-gif: url("https://media.tenor.com/cyORI7kwShQAAAAi/shigure-ui-dance.gif")}html[data-theme=light]{--bg-color: #f7f7f7;--text-color: #2b2b2b;--logo-color: #0a0a0a;--header-border: #e0e0e0;--back-link-color: #555555;--back-link-hover-color: #0a0a0a;--h1-color: #0a0a0a;--meta-color: #777777;--tag-color: #0066cc;--content-p-color: #333333;--hr-color: #cccccc;--content-link-color: #0066cc;--content-link-hover-color: #004499;--h2-color: #0a0a0a;--code-bg: #f0f0f0;--code-border: #e0e0e0;--code-text: #222222;--code-keyword: #a71d5d;--code-function: #0086b3;--code-string: #183691;--code-type: #0086b3;--code-comment: #969896;--copy-btn-bg: #e0e0e0;--copy-btn-border: #d0d0d0;--copy-btn-text: #555555;--copy-btn-hover-bg: #d0d0d0;--copy-btn-hover-text: #222222;--toggle-btn-color: #555555;--toggle-btn-hover-color: #0a0a0a;--toggle-btn-hover-bg: rgba(0, 0, 0, 0.06)}body{background:var(--bg-color);color:var(--text-color);font-family:"Monaco","Menlo","Ubuntu Mono",monospace;line-height:1.6;padding:20px}.container{max-width:1200px;margin:0 auto}header{display:flex;justify-content:space-between;align-items:center;padding:20px 0;margin-bottom:40px;border-bottom:1px solid var(--header-border);transition:border-bottom-color .3s}.logo{color:var(--logo-color);font-size:1.2rem;text-decoration:none;transition:color .3s}.logo a{text-decoration:none;color:inherit}.logo::before{content:"sudo "}.logo::after{content:" >>"}.theme-toggle{background:none;border:none;cursor:pointer;color:var(--toggle-btn-color);display:flex;align-items:center;justify-content:center;padding:8px;border-radius:50%;transition:background-color .3s,color .3s}.theme-toggle:hover{color:var(--toggle-btn-hover-color);background-color:var(--toggle-btn-hover-bg)}.theme-toggle svg{display:block;width:18px;height:18px}nav a{color:var(--back-link-color);text-decoration:none;transition:color .3s}nav a:hover{color:var(--logo-color)}.back-link{display:inline-block;color:var(--back-link-color);text-decoration:none;margin-bottom:30px;transition:color .3s}.back-link::before{content:"← "}.back-link:hover{color:var(--back-link-hover-color)}h1{font-size:2rem;margin-bottom:15px;color:var(--h1-color);font-weight:600;transition:color .3s}.meta{color:var(--meta-color);margin-bottom:40px;font-size:.9rem;transition:color .3s}.meta::before{content:"published: "}.tag{color:var(--tag-color);margin-left:5px;transition:color .3s}.content{max-width:900px}.content p{margin-bottom:1.5rem;color:var(--content-p-color);transition:color .3s}.content hr{border:none;border-top:1px solid var(--hr-color);width:80%;max-width:600px;margin:32px auto;transition:border-top-color .3s}.content a{color:var(--content-link-color);text-decoration:none;transition:color .3s}.content a:hover{color:var(--content-link-hover-color);text-decoration:underline}h2{color:var(--h2-color);font-size:1.4rem;margin:40px 0 20px 0;font-weight:600;transition:color .3s}.code-block{background:var(--code-bg);border:1px solid var(--code-border);border-radius:8px;padding:20px;margin:25px 0;overflow-x:auto;position:relative;transition:background-color .3s,border-color .3s}.code-header{color:var(--meta-color);font-size:.85rem;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid var(--code-border);transition:color .3s,border-bottom-color .3s}.code-block code{color:var(--code-text);font-family:"Monaco","Menlo","Ubuntu Mono",monospace;font-size:.9rem;line-height:1.6;transition:color .3s}.keyword{color:var(--code-keyword);transition:color .3s}.function{color:var(--code-function);transition:color .3s}.string{color:var(--code-string);transition:color .3s}.type{color:var(--code-type);transition:color .3s}.comment{color:var(--code-comment);transition:color .3s}.copy-btn{position:absolute;top:15px;right:15px;background:var(--copy-btn-bg);border:1px solid var(--copy-btn-border);color:var(--copy-btn-text);padding:5px 12px;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .3s}.copy-btn:hover{background:var(--copy-btn-hover-bg);color:var(--copy-btn-hover-text)}.copy-btn.copied{color:#50fa7b}@media (max-width: 768px){body{padding:15px}h1{font-size:1.5rem}.code-block{padding:15px}}::view-transition-group(root){animation-timing-function:var(--expo-in)}::view-transition-new(root){-webkit-mask:var(--mask-gif) center/0 no-repeat;mask:var(--mask-gif) center/0 no-repeat;animation:scale 1.8s;animation-fill-mode:both}::view-transition-old(root){animation:old-exit 1.8s;animation-fill-mode:both}::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal}@keyframes scale{0%{-webkit-mask-size:0;mask-size:0}10%{-webkit-mask-size:50vmax;mask-size:50vmax}85%{-webkit-mask-size:50vmax;mask-size:50vmax}100%{-webkit-mask-size:2000vmax;mask-size:2000vmax}}@keyframes old-exit{0%{opacity:1}80%{opacity:1}100%{opacity:0}}.theme-toggle{view-transition-name:theme-toggle}.solar-switch{display:block;width:20px;height:20px}.solar-switch path{transform-origin:12.5px 12.5px;transform-box:view-box;stroke-dasharray:1;stroke-dashoffset:0;transition:transform 1s cubic-bezier(.4, 0, .2, 1),stroke-dashoffset 1s cubic-bezier(.4, 0, .2, 1)}html[data-theme=light] .sun-icon path{transform:scale(1);stroke-dashoffset:0;transition-delay:0s,.3s}html[data-theme=light] .moon-icon path{transform:scale(0);stroke-dashoffset:1;transition-delay:0s,0s}html[data-theme=dark] .sun-icon path{transform:scale(0);stroke-dashoffset:1;transition-delay:0s,0s}html[data-theme=dark] .moon-icon path{transform:scale(1);stroke-dashoffset:0;transition-delay:0s,.3s}