:root{--font-heading:'Fira Code', monospace;--font-body:'Arial', sans-serif}html.dark{--bg:#0D1117;--fg:#C9D1D9;--accent:#2EC4B6;--border:#30363d}html.light{--bg:#F6F8FA;--fg:#2A2A2A;--accent:#2EC4B6;--border:#d0d0d0}html{scroll-behavior:smooth;overflow-y:scroll}body{background-color:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:1rem;transition:background-color .3s ease,color .3s ease;line-height:1.6;max-width:800px;margin:0 auto;padding:0 20px}h1{font-family:var(--font-heading);color:var(--accent)}h2,h3,h4{font-family:var(--font-heading);color:var(--fg)}header{padding:2rem 0 1rem;border-bottom:1px solid var(--border);margin-bottom:2rem}.site-title{font-size:2rem;font-weight:700;color:var(--accent)}.site-title a{color:var(--accent);text-decoration:none}nav{margin-top:1rem}nav a{font-size:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-right:20px;position:relative;color:var(--fg);text-decoration:none;transition:color .2s ease}nav a::after{content:"";position:absolute;bottom:-4px;left:0;width:0%;height:2px;background:var(--accent);transition:width .3s ease}nav a:hover{color:var(--accent)}nav a:hover::after{width:100%}.post-item{border-bottom:1px solid var(--border);padding-bottom:1.5rem;margin-bottom:2rem;opacity:0;transform:translateY(10px);animation:fadeInUp .6s ease forwards;animation-delay:calc(.1s * var(--i,1))}@keyframes fadeInUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUpPage{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.post-content{opacity:0;animation:fadeInUpPage .4s ease-out forwards;animation-delay:.05s;line-height:1.7;font-family:var(--font-body)}pre{background-color:#1e1e1e;color:inherit;border:1px solid #333;padding:1rem;border-radius:6px;overflow-x:auto;font-size:.95rem}code{font-family:fira code,Consolas,monospace;font-size:.95rem}p code,li code{background-color:rgba(255,255,255,5%);padding:2px 6px;border-radius:4px;color:#e1e1e1;font-size:.9rem}.copy-button{position:absolute;top:10px;right:10px;background:var(--accent);color:var(--bg);border:none;padding:6px 10px;font-size:.75rem;border-radius:4px;cursor:pointer;opacity:.85;transition:background .3s ease,opacity .3s ease}.copy-button:hover{opacity:1;background:var(--fg);color:var(--bg)}code span.k,code span.kt{color:#c792ea}code span.nb,code span.bp{color:#d1af16}code span.nt,code span.na{color:#2370b3}code span.s,code span.sd{color:#60e16f}code span.c,code span.cm{color:#5c6370;font-style:italic}code span.m{color:#f78c6c}code span.nf{color:#5b912b}.theme-toggle{display:flex;align-items:center;margin-left:auto;position:relative;transition:color .3s ease}.theme-toggle::after{content:attr(data-tooltip);position:absolute;top:120%;right:0;background-color:var(--fg);color:var(--bg);padding:4px 8px;font-size:.75rem;white-space:nowrap;border-radius:4px;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .25s ease,transform .25s ease,visibility .25s;z-index:10}.theme-toggle:hover::after{opacity:1;visibility:visible;transform:translateY(0);transition-delay:1s}.switch{position:relative;display:inline-block;width:50px;height:26px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--border);transition:background-color .4s ease;border-radius:34px}.slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:var(--fg);transition:transform .3s ease,background-color .3s ease,box-shadow .3s ease;border-radius:50%;box-shadow:0 0 4px rgba(0,0,0,.3)}input:checked+.slider{background-color:var(--accent)}input:checked+.slider:before{transform:translateX(24px);background-color:var(--bg)}.slider:hover:before{box-shadow:0 0 6px rgba(0,0,0,.6)}.post-title{font-size:1.5rem;margin-bottom:.5rem;font-family:var(--font-heading)}.post-title a{color:var(--fg);text-decoration:none;position:relative;transition:color .2s ease}.post-title a::after{content:"";position:absolute;bottom:-4px;left:0;width:0%;height:2px;background:var(--accent);transition:width .3s ease}.post-title a:hover{color:var(--accent)}.post-title a:hover::after{width:100%}.read-more{font-weight:700;color:var(--fg);text-decoration:none;transition:all .2s ease}.read-more:hover{color:var(--accent);text-decoration:underline;font-weight:700}html.light pre,html.light code,html.light pre code{background-color:#dde8f6!important;color:#1a1a1a!important}html.dark pre,html.dark code,html.dark pre code{background-color:#1e1e1e!important;color:#d4d4d4!important}html.light p code,html.light li code{background-color:#e2e8f0;color:#1a1a1a}html.dark p code,html.dark li code{background-color:rgba(255,255,255,5%);color:#e1e1e1}html.light pre{box-shadow:0 1px 3px rgba(0,0,0,6%)}.author-box{display:flex;align-items:flex-start;gap:1rem;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--border)}.author-photo{width:80px;height:80px;border-radius:50%;object-fit:cover;box-shadow:0 2px 6px rgba(0,0,0,.1)}.author-info p{margin:0;color:var(--fg);font-size:.95rem;line-height:1.5}.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.social-icons{display:flex;gap:.75rem;margin-top:.5rem}.social-icons a img{width:20px;height:20px;opacity:.85;transition:opacity .2s ease,transform .2s ease}.social-icons a:hover img{opacity:1;transform:scale(1.1)}.header-flex{display:flex;justify-content:space-between;align-items:center}.header-right{display:flex;align-items:center;gap:1rem}.social-icons{display:flex;gap:.75rem;align-items:center}.social-icons img{width:20px;height:20px;opacity:.85;transition:opacity .2s ease}.social-icons img:hover{opacity:1}.post-summary{margin-top:1rem;margin-bottom:1.2rem;line-height:1.6}.read-more-wrapper{margin-top:1rem}#status-log::after{content:"_";animation:blink 1s steps(2,start)infinite}@keyframes blink{0%,100%{opacity:0}50%{opacity:1}}.log-info{color:gold;font-weight:700}.log-ok{color:#0f8;font-weight:700}#status-log{line-height:1.2}.log-info{color:gold;font-weight:700}.log-ok{color:#00ac03;font-weight:700}.log-warn{color:orange;font-weight:700}.log-error,.log-fail{color:#f55;font-weight:700}.log-hint{color:#999;font-style:italic}.hacker-mode{background-color:#000!important;color:#0f0!important;font-family:fira code,monospace!important}.hacker-mode a,.hacker-mode h1,.hacker-mode h2,.hacker-mode .site-title{color:#0f0!important}.hacker-input{position:fixed;bottom:2rem;left:2rem;font-family:fira code,monospace;color:#0f0;font-size:1rem;z-index:9999}.blinky{animation:blink 1s steps(2,start)infinite}@keyframes blink{0%,100%{opacity:0}50%{opacity:1}}.hacker-banner{position:fixed;top:1rem;left:50%;transform:translateX(-50%);background:#000;color:#0f0;padding:.5rem 1rem;border:1px solid #0f0;z-index:9999;font-family:fira code,monospace}article.post{margin-top:0}article.post header h1{margin-top:0}article.post header{padding-top:0}.bug-button{margin-top:2rem;background:0 0;border:1px solid var(--accent);padding:.5rem 1rem;color:var(--accent);font-family:var(--font-body);cursor:pointer;transition:all .2s ease}.bug-button:hover{background:var(--accent);color:var(--bg)}.bug-modal{position:fixed;top:20%;left:50%;transform:translateX(-50%);background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:2rem;z-index:9999;box-shadow:0 0 15px rgba(0,0,0,.5)}.bug-content p{margin-bottom:1rem;font-family:var(--font-body)}.bug-modal button{background:0 0;border:1px solid var(--accent);padding:.4rem .8rem;color:var(--accent);cursor:pointer}.bug-modal button:hover{background:var(--accent);color:var(--bg)}.post-content img{max-width:100%;height:auto;display:block;margin:2rem auto;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1)}.post-content a{color:var(--accent);text-decoration:underline;transition:color .3s ease}.post-content a:hover{color:#f55;text-decoration:none}.img-left{float:left;display:block;margin:0 2rem 1rem 0!important;max-width:45%}.img-right{float:right;display:block;margin:0 0 1rem 2rem!important;max-width:45%}.img-left,.img-right{height:auto;border-radius:6px;box-shadow:0 4px 10px rgba(0,0,0,5%)}@media(max-width:768px){.img-left,.img-right{float:none;display:block;margin:1rem auto;max-width:100%}}.img-left+ul,.img-left+ol,.img-right+ul,.img-right+ol{list-style-position:inside;margin-left:0;padding-left:1rem}.post-content ul,.post-content ol{list-style-position:inside;padding-left:1.25rem;margin-left:0}.bordered table,.bordered th,.bordered td{border:1px solid #666;border-collapse:collapse}