/* leandrohermann.com - lightweight static rebuild */
:root{ --fg:#111; --muted:#777; --bg:#fff; --max:1200px; }
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{ font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; color:var(--fg); background:var(--bg); -webkit-font-smoothing:antialiased; line-height:1.5; }
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
.site-header{ max-width:var(--max); margin:0 auto; padding:24px 20px 8px; }
.site-header .logo img{ width:100%; height:auto; }
.site-header nav{ margin-top:16px; }
.site-header nav a{ font-size:13px; letter-spacing:.18em; font-weight:700; color:var(--fg); }
.site-header nav a:hover{ color:var(--muted); }
main{ max-width:var(--max); margin:0 auto; padding:8px 20px 40px; }
.grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.card{ position:relative; display:block; overflow:hidden; background:#eee; }
.card img{ width:100%; aspect-ratio:16/9; object-fit:cover; transition:transform .4s ease, filter .4s ease; }
.card:hover img{ transform:scale(1.03); filter:brightness(.55); }
.card-title{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; padding:10px; color:#fff; font-size:18px; font-weight:700; letter-spacing:.02em; opacity:0; transition:opacity .35s ease; }
.card:hover .card-title{ opacity:1; }
.about{ max-width:760px; }
.about h1{ font-size:40px; font-weight:700; margin:24px 0 8px; }
.about .contact{ color:var(--muted); margin:0 0 28px; }
.about .bio{ font-size:18px; margin:0 0 28px; }
.about .awards{ list-style:none; padding:0; margin:0; }
.about .awards li{ padding:4px 0; border-bottom:1px solid #eee; font-size:15px; }
.campaign{ max-width:980px; }
.campaign h1{ font-size:34px; font-weight:700; margin:24px 0 10px; }
.campaign .subtitle{ font-size:21px; font-weight:700; line-height:1.35; margin:0 0 24px; }
.campaign .work{ width:100%; margin:18px auto; }
.campaign .caption{ font-size:16px; color:#555; margin:6px 0 18px; }
.campaign .credits{ font-size:14px; font-weight:400; color:#555; line-height:1.8; margin:28px 0 16px; }
.campaign .cert{ width:110px; margin:14px 0 8px; }
.campaign .awards{ font-size:16px; font-weight:700; margin:0 0 22px; }
.video-wrap{ position:relative; width:100%; padding-top:56.25%; margin:18px 0; background:#000; }
.video-wrap iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.post-nav{ display:flex; justify-content:space-between; gap:16px; border-top:1px solid #eee; padding-top:18px; margin-top:34px; font-size:13px; }
.post-nav a{ color:var(--muted); } .post-nav a:hover{ color:var(--fg); }
.post-nav .next{ text-align:right; margin-left:auto; }
.site-footer{ max-width:var(--max); margin:0 auto; padding:24px 20px 48px; }
.site-footer a{ font-size:13px; letter-spacing:.1em; color:var(--muted); }
.site-footer a:hover{ color:var(--fg); }
@media (max-width:820px){ .grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .grid{ grid-template-columns:1fr; } .about h1{ font-size:30px; } .campaign h1{ font-size:26px; } .campaign .subtitle{ font-size:18px; } }
