:root{color-scheme:dark;--base:#191724;--surface:#1f1d2e;--overlay:#26233a;--muted:#6e6a86;--subtle:#908caa;--text:#e0def4;--love:#eb6f92;--gold:#f6c177;--rose:#ebbcba;--pine:#31748f;--foam:#9ccfd8;--iris:#c4a7e7;--highlight-low:#21202e;--highlight-med:#403d52;--highlight-high:#524f67;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{scrollbar-color:var(--highlight-high)var(--base);-webkit-text-size-adjust:100%}body{display:flex;flex-direction:column;min-height:100vh;min-height:100svh;margin:0;background:var(--base);color:var(--text);font-family:var(--font-body);line-height:1.6;overflow-wrap:anywhere}::selection{color:var(--text);background:var(--highlight-med)}a{color:var(--foam);text-underline-offset:.3em}a:hover{color:var(--rose)}a:focus-visible{outline:2px solid var(--iris);outline-offset:5px}.shell{width:min(100% - 3rem,64rem);margin-inline:auto}.site-main{flex:1;padding-block:2rem}.skip-link{position:absolute;z-index:1;inset-block-start:.75rem;inset-inline-start:1rem;padding:.5rem 1rem;transform:translateY(-200%);border:1px solid var(--iris);background:var(--surface)}.skip-link:focus{transform:translateY(0)}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:7rem;padding-block:1.5rem;border-bottom:1px solid var(--highlight-med)}.site-brand{display:inline-flex;align-items:center;gap:.85rem;min-width:0;color:var(--text);font-size:1.05rem;font-weight:600;letter-spacing:-.025em;line-height:1.4;text-decoration:none}.rose-mark{flex-shrink:0;width:2.25rem;height:2.25rem;color:var(--rose)}.site-nav{flex-shrink:0}.nav-list{display:flex;flex-wrap:wrap;gap:.75rem 2rem;margin:0;padding:0;list-style:none}.nav-list ul{padding-inline-start:1rem;list-style:none}.site-nav a{color:var(--subtle);font-size:.875rem;text-decoration:none}.site-nav a:hover,.site-nav .active,.site-nav .ancestor{color:var(--text)}.site-nav .active{text-decoration:underline;text-decoration-color:var(--rose);text-underline-offset:.65em}.post-list{margin:1.5rem 0 0;padding:0;border-top:1px solid var(--highlight-med);list-style:none}.post-list-item{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem 1.5rem;padding-block:1rem;border-bottom:1px solid var(--highlight-med)}.post-list-title{margin:0;font-size:1.05rem;font-weight:600}.post-list-date{color:var(--subtle);font-size:.875rem;white-space:nowrap}.posts-empty{color:var(--subtle)}.tag-list{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0 0;padding:0;list-style:none}.tag-list a{display:inline-flex;align-items:baseline;gap:.4rem;padding:.35rem .75rem;border:1px solid var(--highlight-med);border-radius:.65rem;background:var(--surface);font-size:.875rem;text-decoration:none}.tag-list a:hover{border-color:var(--rose);background:var(--overlay)}.tag-count{color:var(--subtle)}.site-main code,.site-main pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:.9em}.site-main :not(pre)>code{padding:.15em .4em;border:1px solid var(--highlight-med);border-radius:.3rem;background:var(--overlay);color:var(--rose);box-decoration-break:clone;-webkit-box-decoration-break:clone}.site-main pre{margin-block:1.5rem;padding:1rem 1.25rem;overflow-x:auto;border:1px solid var(--highlight-high);border-inline-start:3px solid var(--iris);border-radius:.65rem;background:var(--surface);color:var(--text);line-height:1.7;tab-size:4;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}.site-main pre code{font-size:inherit}.social-links{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 0;padding:0;list-style:none}.social-link{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:1px solid var(--highlight-med);border-radius:.65rem;background:var(--surface);color:var(--subtle);text-decoration:none}a.social-link:hover{border-color:var(--rose);background:var(--overlay);color:var(--rose)}.social-link svg{display:block;width:1.25rem;height:1.25rem}.site-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding-block:1.5rem;border-top:1px solid var(--highlight-med);color:var(--subtle);font-size:.8125rem}.site-footer p{margin:0}@media(max-width:640px){.shell{width:calc(100% - 2rem)}.site-header{align-items:flex-start;flex-direction:column;gap:1rem;min-height:auto}.site-brand{font-size:1rem}.site-nav{width:100%}.nav-list{gap:.75rem 1.5rem}}