:root{
  --bg:#fdfcf9;
  --text:#4a4235;
  --heading:#2e2a22;
  --muted:#8c8272;
  --line:#e8e4da;
  --footer-bg:#1c1a17;
  --maxw:1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'Cormorant Garamond','Iowan Old Style','Palatino Linotype',Georgia,serif;
  font-size:19px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--line);}
a:hover{border-bottom-color:var(--text);}
img{max-width:100%;display:block;}

.site-head{text-align:center;padding:56px 24px 30px;}
.site-name{
  font-size:30px;letter-spacing:.32em;font-weight:500;
  color:var(--heading);margin:0;text-transform:uppercase;
}
.site-name a{border:none;color:inherit;}

nav.main-nav{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 24px;}
nav.main-nav ul{list-style:none;margin:0;padding:0;display:flex;justify-content:center;flex-wrap:wrap;gap:40px;}
nav.main-nav a{
  font-family:Helvetica,Arial,sans-serif;font-size:12.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);border:none;padding-bottom:3px;
}
nav.main-nav a:hover, nav.main-nav a.active{color:var(--heading);border-bottom:1px solid var(--heading);}
.menu-btn{display:none;}

@media (max-width:640px){
  .menu-btn{
    display:block;margin:0 auto;background:none;border:1px solid var(--line);
    padding:8px 18px;font-family:Helvetica,Arial,sans-serif;font-size:11px;
    letter-spacing:.14em;text-transform:uppercase;color:var(--muted);cursor:pointer;
  }
  nav.main-nav ul{
    flex-direction:column;align-items:center;gap:16px;
    max-height:0;overflow:hidden;transition:max-height .3s ease;margin-top:0;
  }
  nav.main-nav ul.open{max-height:400px;margin-top:18px;}
}

main{max-width:var(--maxw);margin:0 auto;padding:0 40px;}
section{padding:70px 0;}
section + section{border-top:1px solid var(--line);}

h2.section-title{
  font-size:44px;font-weight:400;letter-spacing:.22em;
  text-transform:uppercase;color:var(--heading);margin:0 0 44px;
}

.about-row{display:flex;gap:60px;align-items:flex-start;}
.about-text{flex:1.4;min-width:280px;}
.about-text p{margin:0 0 22px;}
.about-photo{flex:1;min-width:260px;max-width:420px;}
.about-photo .frame{
  width:100%;aspect-ratio:4/5;
  overflow:hidden;
  background:#e8e4da;
}
.about-photo .frame img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.contact-line{margin-top:8px;font-size:18px;}

.entry{margin-bottom:34px;}
.entry:last-child{margin-bottom:0;}
.entry.with-image{display:flex;gap:24px;align-items:flex-start;}
.entry-thumb{
  flex:0 0 180px;width:180px;aspect-ratio:4/3;overflow:hidden;background:#e8e4da;
}
.entry-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.entry-body{flex:1;min-width:0;}
@media (max-width:640px){
  .entry.with-image{flex-direction:column;}
  .entry-thumb{width:100%;flex:none;}
}
.entry-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:baseline;}
.entry-title{font-size:21px;color:var(--heading);}
.entry-org{color:var(--muted);font-style:italic;font-size:17px;}
.entry-date{font-family:Helvetica,Arial,sans-serif;font-size:12px;letter-spacing:.06em;color:var(--muted);white-space:nowrap;}
.entry p.meta{font-family:Helvetica,Arial,sans-serif;font-size:12px;letter-spacing:.05em;color:#7a8a6d;margin:6px 0 8px;}
.entry ul{margin:8px 0 0;padding-left:22px;}
.entry ul li{margin-bottom:5px;}

.pub{margin-bottom:26px;display:flex;gap:18px;}
.pub-num{font-family:Helvetica,Arial,sans-serif;color:var(--muted);font-size:14px;padding-top:4px;}
.pub-body p{margin:0 0 4px;}
.pub-venue{color:var(--muted);font-size:17px;font-style:italic;}

.skills-grid{display:grid;grid-template-columns:140px 1fr;gap:14px 20px;font-size:18px;}
.skills-grid dt{font-family:Helvetica,Arial,sans-serif;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:3px;}
.skills-grid dd{margin:0;}

.gallery-wrap{position:relative;margin-top:8px;}
.gallery{display:flex;gap:2px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;}
.gallery::-webkit-scrollbar{display:none;}
.gallery .slide{
  position:relative;
  flex:0 0 33.333%;aspect-ratio:16/11;background:#141311;color:#cfd3c6;
  overflow:hidden;
}
.gallery .slide img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.gallery .slide .caption{
  position:absolute;left:0;right:0;bottom:0;
  background:linear-gradient(to top, rgba(0,0,0,.75), rgba(0,0,0,0));
  padding:22px 14px 12px;
  font-family:Helvetica,Arial,sans-serif;font-size:13px;letter-spacing:.08em;
  text-transform:uppercase;text-align:center;color:#fff;
}
.gallery .slide small{display:block;margin-top:6px;color:#cfd3c6;font-size:11px;letter-spacing:.05em;text-transform:none;}
.gallery-btn{
  position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff;
  font-size:28px;cursor:pointer;width:48px;height:48px;display:flex;align-items:center;justify-content:center;opacity:.85;
}
.gallery-btn:hover{opacity:1;}
.gallery-btn.prev{left:6px;}
.gallery-btn.next{right:6px;}

@media (max-width:800px){
  .gallery .slide{flex:0 0 85%;}
  h2.section-title{font-size:32px;}
  .about-row{flex-direction:column-reverse;}
  .about-photo{max-width:340px;}
}

footer{
  background:var(--footer-bg);color:#8f8a7c;text-align:center;padding:34px 24px;
  font-family:Helvetica,Arial,sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
}
footer a{color:#8f8a7c;border:none;}
