*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'DM Sans',sans-serif;background:#f5f4f0;color:#0A1831;}
a{text-decoration:none;color:inherit;}
.port{max-width:900px;margin:0 auto;padding:0 20px;}

/* NAV */
nav{background:rgba(10,24,49,0.97);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:0.5px solid rgba(255,255,255,0.08);position:sticky;top:0;z-index:40;padding:14px 0;}
.nav-inner{display:flex;align-items:center;justify-content:space-between;}
.nav-logo{font-family:'DM Sans',sans-serif;font-weight:300;font-size:15px;letter-spacing:0.04em;color:#fff;}
.nav-logo span{font-weight:400;color:#5271FF;}
.nav-links{display:flex;gap:28px;}
.nav-links a{font-size:13px;color:rgba(255,255,255,0.5);transition:color .2s;}
.nav-links a:hover{color:#fff;}
.nav-mobile{display:none;}

/* HERO */
.hero{padding:64px 20px 56px;background:#0A1831;border-radius:0 0 24px 24px;}
.hero-inner{max-width:900px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
.hero-badge{display:inline-flex;background:rgba(255,255,255,0.07);border:0.5px solid rgba(255,255,255,0.14);border-radius:100px;padding:4px 12px;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.45);margin-bottom:20px;}
.hero-h1{font-family:'Fraunces',serif;font-weight:300;font-size:40px;line-height:1.1;letter-spacing:-0.02em;color:#fff;margin-bottom:16px;}
.hero-h1 em{font-style:italic;color:#5271FF;}
.hero-sub{font-size:14px;line-height:1.7;color:rgba(255,255,255,0.55);margin-bottom:28px;}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap;}
.btn-primary{background:#5271FF;color:#fff;border-radius:10px;padding:10px 20px;font-size:13px;font-weight:500;transition:background .2s;display:inline-block;}
.btn-primary:hover{background:#3d5ce6;}
.btn-secondary{border:0.5px solid rgba(255,255,255,0.22);background:transparent;border-radius:10px;padding:10px 20px;font-size:13px;font-weight:500;color:rgba(255,255,255,0.75);transition:border-color .2s;display:inline-block;}
.btn-secondary:hover{border-color:rgba(255,255,255,0.5);}
.hero-photo-wrap{display:flex;align-items:center;justify-content:center;}
.hero-photo-wrap img{width:240px;height:240px;border-radius:50%;object-fit:cover;border:3px solid rgba(82,113,255,0.4);box-shadow:0 0 0 6px rgba(82,113,255,0.1);}

/* SECTIONS */
.section-wrap{padding:64px 0 8px;}
.section-label{font-size:11px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:#AD4E14;margin-bottom:8px;}
.section-h2{font-family:'Fraunces',serif;font-weight:300;font-size:28px;letter-spacing:-0.02em;color:#0A1831;margin-bottom:24px;}

/* FILTER */
.filter-bar{display:flex;gap:8px;margin-bottom:24px;}
.filter-btn{border:0.5px solid #d8d5ce;background:#fff;border-radius:100px;padding:6px 16px;font-size:12px;font-weight:500;color:#6b6b67;cursor:pointer;transition:all .2s;}
.filter-btn.active{background:#0A1831;color:#fff;border-color:#0A1831;}
.filter-btn:hover:not(.active){border-color:#888880;}

/* PROJECTS */
.projects {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.project-card {
  display: block;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 0.5px solid #e0ddd5;
  border-radius: 18px;
  overflow: hidden;
  transition: transform .25s, box-shadow .25s;
  cursor: pointer;
  width: 100%;
  height: 100%;
}
.project-card{background:#fff;border:0.5px solid #e0ddd5;border-radius:18px;overflow:hidden;transition:transform .25s,box-shadow .25s;cursor:pointer;width:100%;}
.project-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(10,24,49,0.12);}
.project-card.hidden{display:none;}
.project-thumb{height:220px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;}
.project-thumb img {
  max-width: 260px;
  max-height: 260px;
  object-fit: contain;
}
.thumb-focus img {
  max-width: 150px;
  max-height: 150px;
}
.thumb-habit{background:#f5f2eb;}
.thumb-first{background:#edf0f5;}
.thumb-focus{background:#5271FF;}
.focus-wm{font-family:'DM Sans',sans-serif;font-weight:300;font-size:12px;letter-spacing:0.05em;color:rgba(255,255,255,0.7);}
.focus-wm span{font-weight:400;color:#fff;}
.project-body{padding:14px 14px 16px;}
.tag{display:inline-block;font-size:10px;font-weight:500;letter-spacing:0.08em;padding:3px 8px;border-radius:100px;margin-bottom:6px;}
.tag-design{background:#edf0f5;color:#1a3a6a;}
.tag-built{background:#faeae0;color:#7a2a0a;}
.project-title{font-family:'Fraunces',serif;font-weight:600;font-size:16px;color:#0A1831;margin-bottom:5px;}
.project-blurb{font-size:12px;line-height:1.6;color:#6b6b67;margin-bottom:8px;}
.project-role{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:#AD4E14;font-weight:500;}

/* ABOUT */
.about-card {
  background: #fff;
  border: 0.5px solid #e0ddd5;
  border-radius: 20px;
  overflow: hidden;
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  max-height: 420px;
}

.about-photo {
  height: 100%;
  min-height: 280px;
  overflow: hidden;
}

.about-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.btn-outline {
  display: inline-block;
  margin-top: 20px;
  border: 0.5px solid #0A1831;
  color: #0A1831;
  border-radius: 10px;
  padding: 10px 20px;
  font-size: 13px;
  font-weight: 500;
  transition: background .2s, color .2s;
}

.btn-outline:hover {
  background: #0A1831;
  color: #fff;
}

.about-copy {
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* PRINCIPLES */
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:8px;}
.principle{background:#fff;border:0.5px solid #e0ddd5;border-radius:18px;padding:20px;}
.principle-icon{width:32px;height:32px;border-radius:8px;background:#0A1831;margin-bottom:14px;}
.principle h3{font-size:14px;font-weight:500;color:#0A1831;margin-bottom:6px;}
.principle p{font-size:12px;line-height:1.7;color:#6b6b67;}

/* CONTACT */
.contact-band {
  background: #0A1831;
  border-radius: 48px;
  padding: 48px 36px;
  text-align: center;
  max-width: 860px;
  margin: 48px auto;
  box-sizing: border-box;
  width: 90%;
}
.contact-label{font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:#AD4E14;margin-bottom:10px;}
.contact-h2{font-family:'Fraunces',serif;font-weight:300;font-size:28px;color:#fff;letter-spacing:-0.02em;margin-bottom:10px;}
.contact-sub{font-size:14px;line-height:1.7;color:rgba(255,255,255,0.5);max-width:480px;margin:0 auto 24px;}
.contact-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.cta-blue{background:#5271FF;color:#fff;border-radius:10px;padding:10px 20px;font-size:13px;font-weight:500;transition:background .2s;display:inline-block;}
.cta-blue:hover{background:#3d5ce6;}
.cta-ghost{border:0.5px solid rgba(255,255,255,.18);color:rgba(255,255,255,.75);border-radius:10px;padding:10px 20px;font-size:13px;display:inline-block;transition:background .2s;}
.cta-ghost:hover{background:rgba(255,255,255,0.05);
}
 
/* Success message (shown after submit via JS) */
.contact-success {
  display: none;
  color: rgba(255,255,255,0.75);
  font-size: 14px;
  margin-top: 12px;
  text-align: center;
}
 
/* Responsive */
@media (max-width: 540px) {
  .contact-form-row { flex-direction: column; }
}



.contact-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.7;
  margin-bottom: 16px;
}

.contact-h2 {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 16px;
}

.contact-sub {
  font-size: 1rem;
  opacity: 0.8;
  max-width: 480px;
  margin: 0 auto 32px;
}

.contact-btns {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

/* DIVIDER */
.divider{border:none;border-top:0.5px solid #e0ddd5;margin:44px 0;}

/* FOOTER */
footer{padding:24px 0;text-align:center;}
footer p{font-size:12px;color:#aaa89e;}

/* RESPONSIVE */
@media(max-width:700px){
  .hero-inner{grid-template-columns:1fr;text-align:center;}
  .hero-photo-wrap{order:-1;}
  .hero-photo-wrap img{width:180px;height:180px;}
  .hero-btns{justify-content:center;}
  .projects{grid-template-columns:1fr;}
  .about-card{grid-template-columns:1fr;}
  .about-photo{min-height:220px;}
  .principles{grid-template-columns:1fr;}
  .nav-links{display:none;}
  .nav-mobile{display:block;font-size:20px;color:rgba(255,255,255,0.6);cursor:pointer;}
}
/* Additional responsive adjustments for better mobile experience */
@media (max-width: 700px) {
  .projects {
    grid-template-columns: 1fr;
  }

  .about-card {
    grid-template-columns: 1fr;
    max-height: none;
  }

  .about-photo {
    height: 260px;
  }

  .contact-band {
    margin: 32px 16px;
    padding: 36px 24px;
  }
}