:root{--color-bg:#faf7f2;--color-fg:#1f2320;--color-muted:#6b6f6a;--color-accent:#b5502f;--color-accent-hover:#96421f;--color-accent-contrast:#fff;--color-accent-tint:#f4e6de;--color-secondary:#34406b;--color-secondary-contrast:#fff;--color-secondary-tint:#e6e9f1;--color-surface:#fff;--color-border:#e3ddd2;--color-focus:#34406b;--max-width:1100px}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-fg);margin:0;font-family:Georgia,Times New Roman,serif;line-height:1.6}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:2px}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}.site-header{border-bottom:1px solid var(--color-border);padding:1.25rem 0}.nav-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.brand{letter-spacing:.02em;font-size:1.4rem;font-weight:700}.nav-list{flex-wrap:wrap;gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.nav-list a:hover{color:var(--color-accent-hover)}main{min-height:60vh;padding:2.5rem 0 4rem}.site-footer{border-top:1px solid var(--color-border);color:var(--color-muted);padding:1.5rem 0;font-size:.9rem}.hero{background:linear-gradient(135deg, var(--color-accent-tint) 0%, var(--color-bg) 45%, var(--color-secondary-tint) 100%);border-radius:12px;margin-bottom:.5rem;padding:2.5rem 2rem 3.5rem}.hero h1{margin-bottom:.5rem;font-size:2.4rem}.hero p{color:var(--color-muted);max-width:640px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem;margin:1.5rem 0 2.5rem;display:grid}.card{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;transition:box-shadow .15s,transform .15s;display:block;overflow:hidden}.card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000014}.card-body{padding:1.25rem}.card h3{margin:0 0 .4rem}.card-media{aspect-ratio:16/10;background:var(--color-accent-tint);position:relative}.card-media img{object-fit:cover;width:100%;height:100%;display:block}.card-media-placeholder,.detail-media-placeholder{width:100%;height:100%;color:var(--color-muted);background:repeating-linear-gradient(135deg, var(--color-accent-tint), var(--color-accent-tint) 10px, var(--color-bg) 10px, var(--color-bg) 20px);justify-content:center;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.detail-media{aspect-ratio:16/7;background:var(--color-accent-tint);border-radius:12px;margin:1rem 0 1.5rem;position:relative;overflow:hidden}.detail-media img{object-fit:cover;width:100%;height:100%;display:block}.detail-media-placeholder{font-size:1rem}.card-meta{color:var(--color-muted);margin:0 0 .4rem;font-size:.9rem}.card-tags{color:var(--color-accent);margin:0;font-size:.8rem}.filter-bar{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.filter-bar select{border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;padding:.5rem .75rem;font-family:inherit}.tag-list{flex-wrap:wrap;gap:.5rem;margin:.5rem 0 1.5rem;padding:0;list-style:none;display:flex}.tag-list li{border:1px solid var(--color-secondary);color:var(--color-secondary);background:var(--color-secondary-tint);border-radius:999px;padding:.2rem .75rem;font-size:.8rem}.prose{max-width:720px}.prose h2{margin-top:2rem}.empty-state{color:var(--color-muted);border:1px dashed var(--color-border);text-align:center;border-radius:8px;padding:2rem}.consent-banner{z-index:100;background:var(--color-fg);color:var(--color-bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;font-size:.9rem;display:flex;position:fixed;bottom:0;left:0;right:0}.consent-banner p{max-width:640px;margin:0}.consent-banner a{text-decoration:underline}.consent-banner-actions{flex-shrink:0;gap:.75rem;display:flex}.consent-banner-actions button{border:1px solid var(--color-bg);color:var(--color-bg);cursor:pointer;background:0 0;border-radius:6px;padding:.5rem 1rem;font-family:inherit}.consent-banner-actions button:last-child{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.consent-banner-actions button:last-child:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}
