:root{--color-bg-light:#F5F2ED;--color-bg-medium:#F0EBE6;--color-text-dark:#565A66;--color-bg-lighter:#FAF8F5;--color-text-medium:#8A8D95;--color-accent:#A0846D;--color-border:#E8E3DE;--color-link:#7A6A5C;--code-bg:#FCFAF8;--code-text:#3F3F3F;--code-keyword:#8B5A3C;--code-string:#3D7F6F;--code-number:#D47E3F;--code-comment:#9D9D9D;--code-function:#4A6FA5}*{margin:0;padding:0;box-sizing:border-box}html{font-family:iosevka fixed web,noto sans jp,monospace;line-height:2;color:var(--color-text-dark)}body{background-color:var(--color-bg-light);color:var(--color-text-dark);word-spacing:-.5ch}code,pre{line-height:1.5;word-spacing:normal}.site-header{border-bottom:1px solid var(--color-border);padding:1rem 0;margin-bottom:2rem;background-color:var(--color-bg-medium)}.site-nav{max-width:800px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:0 1rem}.site-branding{display:flex;flex-direction:column;gap:.25rem}.logo{font-size:1.5rem;font-weight:700;text-decoration:none;color:var(--color-text-dark)}.site-description{font-size:.85rem;color:var(--color-text-medium);margin:0}.nav-links{display:flex;gap:1.5rem}.nav-links a{text-decoration:none;color:var(--color-text-medium);transition:color .2s}.nav-links a:hover{color:var(--color-accent)}main{max-width:800px;margin:0 auto;padding:0 1rem;min-height:calc(100vh - 200px)}.site-footer{border-top:1px solid var(--color-border);padding:2rem 0;text-align:center;color:var(--color-text-medium);font-size:.9rem;margin-top:4rem;background-color:var(--color-bg-lighter)}.footer-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.footer-content p{margin:0}.social-links{display:flex;gap:1rem;align-items:center}.social-links a{color:var(--color-text-medium);transition:color .2s ease;display:inline-flex;align-items:center;text-decoration:none;font-size:1.25rem}.social-links a:hover{color:var(--color-accent)}h1,h2,h3,h4,h5,h6{margin:1.5rem 0 1rem;line-height:1.2;border-bottom:2px solid var(--color-border);padding-bottom:.5rem;position:relative}.content h1::before,.post-entry p h1::before{content:"# ";color:var(--color-accent);font-size:.85em}.content h2::before,.post-entry p h2::before{content:"## ";color:var(--color-accent);font-size:.85em}.content h3::before,.post-entry p h3::before{content:"### ";color:var(--color-accent);font-size:.85em}.content h4::before,.post-entry p h4::before{content:"#### ";color:var(--color-accent);font-size:.85em}.content h5::before,.post-entry p h5::before{content:"##### ";color:var(--color-accent);font-size:.85em}.content h6::before,.post-entry p h6::before{content:"###### ";color:var(--color-accent);font-size:.85em}h1{font-size:2rem;font-weight:700}h2{font-size:1.5rem;font-weight:700}h3{font-size:1.25rem;font-weight:700}h4{font-size:1.1rem;font-weight:700}h5{font-size:1rem;font-weight:700}h6{font-size:.95rem;font-weight:700}p{margin-bottom:1rem;text-align:justify;text-justify:inter-character;word-break:auto-phrase}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline;color:var(--color-accent)}code{background-color:var(--color-bg-medium);padding:.2em .4em;border-radius:0;font-family:iosevka fixed web,noto sans jp,monospace;color:var(--code-text)}pre{background-color:var(--code-bg);padding:1rem;border-radius:0;overflow-x:auto;margin:1rem 0}pre code{background:0 0;padding:0;border-radius:0;color:var(--code-text)}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt{color:var(--code-keyword);font-weight:700}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:var(--code-string)}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:var(--code-number)}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs{color:var(--code-comment);font-style:italic}.chroma .n,.chroma .na,.chroma .nc,.chroma .no,.chroma .nd,.chroma .ni,.chroma .ne,.chroma .nf,.chroma .nl,.chroma .nn,.chroma .nx,.chroma .py,.chroma .nt,.chroma .nv,.chroma .vm{color:var(--code-function)}.chroma .o,.chroma .ow{color:var(--code-text)}.chroma .nb,.chroma .bp{color:var(--code-keyword)}.chroma .gd{color:#c14a4a;background-color:#ffeef0}.chroma .gi{color:var(--code-string);background-color:#f0fff4}.chroma .ln,.chroma .lnt{color:var(--color-text-medium);margin-right:.5rem;padding-right:.5rem;user-select:none}.post,.post-entry{margin-bottom:2rem;padding:1rem;background-color:var(--color-bg-lighter);border-radius:0;position:relative;overflow:hidden}.post header{margin-bottom:2rem}.post header h1{border-bottom:none;padding-bottom:0;margin:.5rem 0 .25rem}.post-entry h1,.post-entry h2,.post-entry h3{margin:.5rem 0 .25rem;color:var(--color-text-dark)}.post-entry h1{border-bottom:none;padding-bottom:0}.post-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:0;border-bottom:2px solid var(--color-border)}.post-date{color:var(--color-text-medium);font-size:.9rem}.post-tags{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end}.tag{display:inline-block;padding:.2rem .5rem;background-color:initial;color:var(--color-text-medium);border-radius:0;font-size:.8rem;text-decoration:none;transition:all .2s}.tag:hover{color:var(--color-link)}.post-entry time{display:block;color:var(--color-text-medium);font-size:.9rem;margin-bottom:.5rem}.posts{display:flex;flex-direction:column;gap:1rem}.posts .post-entry{margin-bottom:0;border-radius:0}.posts .post-entry:last-child{border-bottom:none}.post-entry::after{content:"";position:absolute;bottom:0;left:0;right:0;height:4rem;background:linear-gradient(to bottom,rgba(250,248,245,0) 0%,rgba(250,248,245,.6) 50%,#faf8f5 100% );pointer-events:none;z-index:1}.post-footer{position:absolute;bottom:1rem;right:1rem;z-index:2}.read-more{color:var(--color-link);font-weight:500;text-decoration:none;transition:color .2s;pointer-events:auto}.read-more:hover{color:var(--color-accent)}ul,ol{margin-bottom:1rem}ul{margin-left:.6rem}ol{margin-left:1.8rem}li{margin-bottom:.5rem}ul{list-style:none}ul li:before{content:"▪ ";margin-right:.5rem;color:var(--color-accent);font-weight:700}ol{list-style:decimal}hr{border:none;border-top:2px solid var(--color-border);margin:2rem 0}