:root{--bg:#1d1f15;--bg-secondary:#272417;--bg-card:#2a3326;--text:#e4c689;--text-muted:#c89050;--accent:#ce905b;--border:#384335;--link:#ce905b;--transition:200ms ease;--tag-bg:#e4c689;--tag-text:#384335;--tag-border:#384335}[data-theme=light]{--bg:#f2edd7;--bg-secondary:#e8dfc8;--bg-card:#ddd3ba;--text:#2a1f0d;--text-muted:#6b5230;--accent:#8b4a1e;--border:#c4ad8a;--link:#7a3a10;--tag-bg:#e8dfc8;--tag-text:#6b5230;--tag-border:#c4ad8a}*,*::before,*::after{box-sizing:border-box}html{overflow-x:hidden;transition:background-color var(--transition),color var(--transition)}body{background-color:var(--bg);color:var(--text);font-family:sans-serif;line-height:1.6;margin:0;padding:0;min-height:100vh;min-width:320px;display:flex;flex-direction:column;overflow-x:hidden}main{max-width:1200px;width:100%;margin-inline:auto;padding:0 1rem;flex:1}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}body>header{border-bottom:1px solid var(--border);margin-bottom:2rem;padding:0 1rem;position:sticky;top:0;z-index:200;background:var(--bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 0;max-width:1200px;margin-inline:auto}.nav-brand{font-size:1.1rem;font-weight:700;letter-spacing:-.01em;color:var(--text);text-decoration:none;white-space:nowrap;flex-shrink:0}.nav-brand:hover{color:var(--accent);text-decoration:none}nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:.25rem}nav ul li a{display:block;padding:.35rem .75rem;border-radius:.375rem;font-size:.875rem;font-weight:500;color:var(--text-muted);text-decoration:none;transition:color var(--transition),background var(--transition)}nav ul li a:hover{color:var(--text);background:var(--bg-secondary);text-decoration:none}nav ul li a.active{color:var(--accent);background:var(--bg-card)}.nav-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.nav-actions nav{border-right:1px solid var(--border);padding-right:.5rem;margin-right:.25rem}#icon-sun{display:none}#icon-moon{display:block}[data-theme=light] #icon-sun{display:block}[data-theme=light] #icon-moon{display:none}footer{border-top:1px solid var(--border);margin-top:2rem;padding:0 1rem;color:var(--text-muted);font-size:.875rem}.footer-inner{max-width:1200px;margin-inline:auto;padding:1.25rem 0 1rem;display:flex;flex-direction:column;gap:.75rem}.footer-links{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.footer-nav{display:flex;gap:1.25rem;flex-wrap:wrap}.footer-social{display:flex;gap:1.25rem;flex-wrap:wrap}.footer-nav a,.footer-social a{color:var(--text-muted);text-decoration:none;font-size:.875rem;transition:color var(--transition)}.footer-nav a:hover,.footer-social a:hover{color:var(--accent)}.footer-copy{font-size:.8rem;color:var(--text-muted);margin:0;display:flex;flex-wrap:wrap;gap:.25rem .5rem}.footer-copy .nowrap{white-space:nowrap}.footer-copy a{color:var(--text-muted);text-decoration:none;transition:color var(--transition)}.footer-copy a:hover{color:var(--accent)}#theme-toggle,#nav-toggle{background:0 0;border:1px solid var(--border);border-radius:.375rem;cursor:pointer;line-height:0;padding:.4rem;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:border-color var(--transition),color var(--transition),background var(--transition)}#theme-toggle:hover,#nav-toggle:hover{border-color:var(--accent);color:var(--text);background:var(--bg-secondary)}#nav-toggle{display:none}.posts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}.post-card{background:var(--bg-card);border:1px solid var(--border);border-radius:.5rem;overflow:hidden;transition:border-color var(--transition),transform var(--transition)}.post-card:hover{border-color:var(--accent);transform:translateY(-2px)}.post-card>a{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}.post-thumbnail{width:100%;aspect-ratio:4/3;overflow:hidden;background:var(--bg-secondary)}.post-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}.post-card-body{padding:.875rem;display:flex;flex-direction:column;gap:.35rem;flex:1}.post-card-title{font-size:1rem;margin:0;line-height:1.3;color:var(--text)}.post-card-date{font-size:.75rem;color:var(--text-muted)}.post-card-description{font-size:.85rem;color:var(--text-muted);margin:0;flex:1}.post-card-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:auto;margin-bottom:.25rem;padding-top:.5rem}.post-header .post-card-tags{margin-top:.75rem}.post-tag{font-size:.7rem;padding:.15rem .5rem;border-radius:.25rem;background:var(--tag-bg);color:var(--tag-text);border:1px solid var(--tag-border);text-decoration:none}.search-container{margin-bottom:1rem}#search-input{width:100%;padding:.5rem .75rem;font-size:.95rem;background:var(--bg-secondary);color:var(--text);border:1px solid var(--border);border-radius:.375rem;outline:none;transition:border-color var(--transition)}#search-input:focus{border-color:var(--accent)}.tag-filter{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem}.tag-btn{font-size:.8rem;padding:.25rem .75rem;border-radius:999px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-muted);cursor:pointer;transition:border-color var(--transition),color var(--transition),background var(--transition)}.tag-btn:hover,.tag-btn.active{border-color:var(--accent);color:var(--accent);background:var(--bg-card)}.no-results{color:var(--text-muted);text-align:center;padding:2rem}.pagination{display:flex;align-items:center;justify-content:center;gap:.75rem;margin:2rem 0 1rem}.page-btn{padding:.35rem .9rem;border:1px solid var(--border);border-radius:.375rem;background:var(--bg-secondary);color:var(--text);font-size:.875rem;text-decoration:none;transition:border-color var(--transition),background var(--transition),color var(--transition)}a.page-btn:hover{border-color:var(--accent);background:var(--bg-card);color:var(--accent);text-decoration:none}.page-btn.disabled{opacity:.35;cursor:default}.page-info{font-size:.85rem;color:var(--text-muted)}.tag-list{display:flex;flex-wrap:wrap;gap:.6rem}.tag-chip{padding:.35rem .9rem;border-radius:999px;border:1px solid var(--border);background:var(--bg-card);color:var(--text);font-size:.875rem;transition:border-color var(--transition)}.tag-chip:hover{border-color:var(--accent);text-decoration:none}.tag-count{color:var(--text-muted);font-size:.8em}.post-single{max-width:800px}.post-hero{display:flex;justify-content:center;margin-bottom:1.5rem}.post-hero img{width:75%;border-radius:.5rem}.post-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.post-header h1{margin-bottom:.25rem}.post-date{font-size:.85rem;color:var(--text-muted)}.post-coauthors{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.85rem;color:var(--text-muted);margin-top:.2rem}.coauthors-label{color:var(--text-muted)}.post-coauthors a{color:var(--link)}.post-description{color:var(--text-muted);margin-top:.5rem}.post-content h2,.post-content h3,.post-content h4{margin-top:2rem}.post-content img{max-width:100%}.post-content table{border-collapse:collapse;width:100%;margin:1rem 0}.table-wrap .post-content table,.table-wrap table{margin:0}.post-content th,.post-content td{border:1px solid var(--border);padding:.5rem .75rem;text-align:left}.post-content th{background:var(--bg-secondary)}pre{border-radius:.375rem;overflow-x:auto;padding:1rem;margin:1rem 0}code{font-size:.875em}p code,li code{background:var(--bg-secondary);border:1px solid var(--border);border-radius:.25rem;padding:.1em .35em}.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{position:relative}.heading-anchor{opacity:0;margin-left:.35em;color:var(--text-muted);text-decoration:none;vertical-align:middle;transition:opacity var(--transition),color var(--transition)}.post-content h2:hover .heading-anchor,.post-content h3:hover .heading-anchor,.post-content h4:hover .heading-anchor,.post-content h5:hover .heading-anchor,.post-content h6:hover .heading-anchor{opacity:1}.heading-anchor:hover{color:var(--accent)}.media-figure,.tikz-wrap,.table-wrap{position:relative}.fig-anchor{position:absolute;bottom:.4rem;right:.5rem;opacity:0;color:var(--text-muted);text-decoration:none;line-height:1;transition:opacity var(--transition),color var(--transition)}.fig-anchor--top{bottom:auto;top:.4rem}.media-figure:hover .fig-anchor,.tikz-wrap:hover .fig-anchor,.table-wrap:hover .fig-anchor{opacity:1}.fig-anchor:hover{color:var(--accent)}.media-figure{margin:1.25rem auto;width:fit-content;max-width:100%}.media-figure img,.media-figure video{display:block;max-width:100%;border-radius:.5rem}.media-figure--sized{display:block;width:100%}.media-figure--sized img,.media-figure--sized video{width:100%}figcaption{margin-top:.4rem;text-align:center;font-size:.8rem;color:var(--text-muted);font-style:italic}.tikz-figure{margin:1.25rem auto;display:flex;justify-content:center}.tikz-figure svg,script[type="text/tikz"]+svg,.tikz-output svg{display:block;max-width:100%;border-radius:.375rem;padding:.5rem;margin:0 auto}:root:not([data-theme=light]) .tikz-figure svg,:root:not([data-theme=light]) script[type="text/tikz"]+svg,:root:not([data-theme=light]) .tikz-output svg{filter:invert(1);background:0 0}@media(max-width:900px){.posts-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.posts-grid{grid-template-columns:1fr}#nav-toggle{display:flex}#main-nav{position:fixed;top:0;right:0;height:100dvh;width:70vw;max-width:280px;z-index:200;background:var(--bg);border-left:1px solid var(--border);padding:5rem 1.5rem 2rem;transform:translateX(100%);transition:transform 280ms ease;display:block}#main-nav.nav-open{transform:translateX(0)}#main-nav nav ul{flex-direction:column;align-items:flex-start;gap:.25rem}#nav-backdrop{display:none;position:fixed;inset:0;z-index:199;background:rgba(0,0,0,.45)}#nav-backdrop.nav-backdrop-visible{display:block}body>header{margin-bottom:1.25rem}main{padding:0 .75rem}.post-single{max-width:100%}.post-card-body{padding:.75rem}#search-input{font-size:1rem}.footer-links{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem}pre{font-size:.8rem;padding:.75rem}}