*,*::before,*::after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-serif);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;transition:background .3s ease,color .3s ease}h1,h2,h3{font-family:var(--font-serif);font-weight:600;letter-spacing:-.01em;color:var(--ink)}h1{font-size:2.4rem;margin:0 0 .3rem}h2{font-size:1.6rem;margin:0 0 .8rem}h3{font-family:var(--font-sans);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;color:var(--ink-soft);margin:0 0 .6rem}p{margin:0 0 1rem}a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .2s ease}a:hover{color:var(--accent-hover)}em{font-style:italic}strong{font-weight:600}.page-header{max-width:1220px;margin:0 auto;padding:3.5rem 1.5rem 1.8rem;border-bottom:1px solid var(--rule);display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;transition:border-color .3s ease}.page-header .brand{flex:1;min-width:0}.page-header h1{max-width:820px}.page-header .subtitle{font-size:1.1rem;color:var(--ink-soft);margin:.4rem 0 0;max-width:720px;line-height:1.5;font-style:italic}.page-header h1 a{color:var(--ink);text-decoration:none}.nav{display:flex;align-items:center;gap:1.1rem;font-family:var(--font-sans);font-size:.88rem;margin-top:.6rem;flex-shrink:0}.nav a{color:var(--ink-soft);text-decoration:none;transition:color .2s ease}.nav a:hover{color:var(--accent)}main{max-width:1220px;margin:0 auto;padding:2rem 1.5rem 4rem}section{padding:1.5rem 0}footer{max-width:1220px;margin:0 auto;padding:2rem 1.5rem;color:var(--ink-faint);font-size:.88rem;line-height:1.55;border-top:1px solid var(--rule);transition:border-color .3s ease}footer p{max-width:820px;margin:0 0 .4rem}footer a{color:var(--ink-soft)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:0 0;border:1px solid var(--rule);color:var(--ink-soft);cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease;padding:0}.theme-toggle:hover{background:var(--paper);color:var(--accent);border-color:var(--accent)}.theme-toggle svg{display:block}.intro{max-width:820px;margin-bottom:2rem;color:var(--ink-soft);font-size:1.05rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.3rem}.card{background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:1.4rem 1.5rem 1.3rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.6rem;text-decoration:none;color:inherit;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease,background .3s ease}.card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-date{font-family:var(--font-sans);font-size:.75rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em}.card-title{font-family:var(--font-serif);font-size:1.35rem;font-weight:600;color:var(--ink);margin:0;line-height:1.25}.card-summary{color:var(--ink-soft);font-size:.97rem;line-height:1.5;margin:0;flex:1}.card-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.3rem}.chip{font-family:var(--font-sans);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.22rem .55rem;background:var(--chip-bg);color:var(--chip-ink);border-radius:3px;transition:background .3s ease,color .3s ease}.card-cta{font-family:var(--font-sans);font-size:.82rem;color:var(--accent);margin-top:.3rem;font-weight:600}.card-cta::after{content:" \2192"}.prose{max-width:720px;margin:0 auto}.prose h2{margin-top:2rem}.prose a{color:var(--accent)}.todo-banner{padding:1rem 1.2rem;background:var(--chip-bg);border-left:3px solid var(--accent);border-radius:0 4px 4px 0;color:var(--ink);font-style:italic;margin:1.5rem 0}@media(max-width:640px){h1{font-size:1.9rem}h2{font-size:1.3rem}.page-header{padding:2.5rem 1rem 1.5rem;flex-direction:column;gap:.6rem}.nav{margin-top:.2rem}main{padding:1rem 1rem 3rem}footer{padding:2rem 1rem}}