
:root{
  --accent:#6e6e6e;
  --text:#333333;
  --muted:#777777;
  --line:#dadada;
  --bg:#ffffff;
  --page:#f8f8f8;
  --link:#385e88;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--page);color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.45}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}
.site-shell{max-width:1080px;margin:24px auto;background:#fff;border:1px solid #d8d8d8;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.site-title{padding:28px 40px 14px;text-align:center;font-size:36px;letter-spacing:4px;color:#4a4a4a;font-weight:600}
.nav{border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;padding:11px 20px;background:#fafafa}
.nav a{display:inline-block;margin:0 18px;font-size:14px;color:#666;text-transform:uppercase;letter-spacing:1.2px}
.nav a.active{color:#222;font-weight:700}
.content{padding:34px 42px 26px}
.home-grid{display:grid;grid-template-columns:280px 1fr;gap:34px;align-items:start}
.headshot-wrap{background:#fbfbfb;border:1px solid var(--line);padding:10px}
.headshot-wrap img{width:100%;height:auto}
.side-projects{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.side-projects a{display:block;margin:9px 0;font-size:15px;word-break:break-word}
.contact-block{font-size:17px;color:#444;margin-bottom:18px}
.contact-block .line{margin:2px 0}
.bio p{font-size:17px;margin:0 0 14px;color:#404040}
.page-title{font-size:28px;margin:0 0 20px;color:#474747;font-weight:600}
.subsection-title{font-size:22px;margin:26px 0 14px;color:#555;border-bottom:1px solid var(--line);padding-bottom:6px}
.paper-list{display:flex;flex-direction:column;gap:18px}
.paper-card{display:grid;grid-template-columns:280px 1fr;gap:22px;padding:18px 0;border-bottom:1px solid #ededed}
.preview-figure{border:1px solid var(--line);background:#fcfcfc;padding:8px;display:flex;align-items:center;justify-content:center;min-height:180px}
.preview-figure img{width:100%;height:auto;object-fit:contain}
.preview-svg{width:100%;height:170px;background:linear-gradient(#fafafa,#f3f3f3)}
.paper-title{font-size:23px;line-height:1.25;margin:0 0 6px;color:#303030;font-weight:600}
.paper-meta{font-size:14px;color:#777;margin-bottom:10px}
.paper-summary{font-size:16px;color:#404040;margin-bottom:12px}
.paper-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.paper-actions button,.paper-actions a.button-link{appearance:none;border:1px solid #bdbdbd;background:#f7f7f7;color:#444;padding:7px 12px;font-size:13px;text-transform:uppercase;letter-spacing:.8px;cursor:pointer}
.paper-actions button:hover,.paper-actions a.button-link:hover{background:#efefef;text-decoration:none}
.abstract-box{display:none;border-left:3px solid #d0d0d0;background:#fafafa;padding:12px 14px;font-size:15px;color:#4d4d4d}
.abstract-box.open{display:block}
.footer-links{border-top:1px solid var(--line);margin-top:28px;padding:20px 42px 30px;text-align:center;background:#fafafa}
.footer-links .projects{margin-bottom:18px}
.footer-links .projects a{display:block;margin:5px 0}
.footer-nav a{display:inline-block;margin:0 12px;color:#666;font-size:13px;text-transform:uppercase;letter-spacing:1px}
.note{font-size:13px;color:#888}
.simple-page p,.simple-page li{font-size:16px;color:#404040}
.simple-page ul{padding-left:20px}
.simple-page section{margin-bottom:22px}
.hero-note{font-size:14px;color:#777;margin-top:14px}
@media (max-width: 860px){
  .site-shell{margin:0;background:#fff;border:none;box-shadow:none}
  .content{padding:22px}
  .site-title{padding:20px 16px 12px;font-size:28px;letter-spacing:2px}
  .nav a{margin:0 10px 8px}
  .home-grid,.paper-card{grid-template-columns:1fr}
}
