:root{
  --purple:#7a3fb5;
  --purple-dark:#5a2d87;
  --ink:#1c1c1c;
  --bg-top:#efe6fb;
  --bg-bottom:#d9c7f2;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:"Poppins","Segoe UI",Arial,sans-serif;
  color:var(--ink);
  background:linear-gradient(180deg,#ffffff 0%,var(--bg-top) 12%,var(--bg-bottom) 100%);
  min-height:100vh;
  line-height:1.6;
}
img{max-width:100%;height:auto;}

.announcement-bar{background:linear-gradient(90deg,var(--purple-dark),var(--purple));color:#fff;
  text-align:center;font-size:.85rem;}
.announcement-bar p{max-width:1140px;margin:0 auto;padding:.5rem 1rem;
  display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap;}
.announcement-badge{background:rgba(255,255,255,.2);border-radius:999px;
  padding:.1rem .6rem;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;}
.announcement-bar a{color:#fff;text-decoration:underline;font-weight:600;white-space:nowrap;}
.announcement-bar a:hover{opacity:.85;}

.site-header{background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.06);}
.header-inner{max-width:1140px;margin:0 auto;display:flex;align-items:center;
  justify-content:space-between;padding:.6rem 1rem;}
.logo img{height:40px;}
.main-nav ul{list-style:none;margin:0;padding:0;}
.main-nav > ul{display:flex;gap:1.5rem;}
.main-nav a{color:var(--purple);text-decoration:none;font-size:.9rem;}
.main-nav a:hover{color:var(--purple-dark);}
.has-submenu{position:relative;}
.submenu{display:none;position:absolute;top:100%;left:0;background:#fff;
  min-width:200px;box-shadow:0 4px 10px rgba(0,0,0,.1);padding:.5rem 0;flex-direction:column;gap:0;}
.has-submenu:hover .submenu{display:flex;}
.submenu li{padding:.4rem 1rem;}
.caret{font-size:.7rem;}

.content{max-width:1140px;margin:0 auto;padding:2rem 1rem;}
.page-title{font-size:2.4rem;font-weight:800;color:var(--ink);margin:.5rem 0 1.5rem;}
.page-banner{text-align:center;margin-bottom:1rem;}
.project-logo{margin:1rem 0;}
.page-body p{margin:0 0 1.2rem;}
.page-body figure{text-align:center;margin:2rem 0;}
/* Clearfix so floated figures are contained within the page body. */
.page-body::after{content:"";display:table;clear:both;}

/* Processed / responsive images (imgproc shortcode). */
.imgproc{margin:0 0 1rem;}
.imgproc img{display:block;border-radius:8px;box-shadow:0 4px 14px rgba(0,0,0,.12);}
.imgproc figcaption{margin-top:.5rem;font-size:.8rem;color:#555;}
.imgproc.float-right,.imgproc.float-left{width:min(var(--img-w,280px),100%);max-width:100%;}
.imgproc.float-right{float:right;margin:.25rem 0 1rem 1.75rem;}
.imgproc.float-left{float:left;margin:.25rem 1.75rem 1rem 0;}
@media(max-width:640px){
  .imgproc.float-right,.imgproc.float-left{float:none;width:100%;margin:1.5rem 0;text-align:center;}
  .imgproc.float-right img,.imgproc.float-left img{margin:0 auto;}
}
.project-link a{color:var(--purple);word-break:break-all;}
.project-index{list-style:none;padding:0;display:grid;gap:.5rem;}
.project-index a{color:var(--purple);text-decoration:none;font-weight:600;}

.contact-cta{text-align:center;padding:3rem 1rem;}
.contact-cta h2{font-weight:800;letter-spacing:.05em;}
.cta-email{font-weight:600;}

.site-footer{text-align:center;padding:1.5rem 1rem;font-size:.8rem;color:#555;}

@media(max-width:768px){
  .header-inner{flex-direction:column;gap:.5rem;}
  .main-nav > ul{flex-wrap:wrap;justify-content:center;gap:.75rem;}
  .page-title{font-size:1.8rem;}
}
