:root{
  --bg:#2a2a2a;
  --bg-card:#323232;
  --bg-alt:#252525;
  --bg-about:#2d2d2d;
  --border:#3a3a3a;
  --text:#a8a8a8;
  --text-light:#c0c0c0;
  --text-dim:#808080;
  --white:#ffffff;
  --accent:#23dc82;
  --accent-hover:#1fc971;
  --radius:8px;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;
  background-color:var(--bg);
  color:var(--text);
  line-height:1.6;
  overflow-x:hidden;
}
.container{max-width:1200px;margin:0 auto;padding:0 2rem;}

/* Header / nav */
header{padding:1.5rem 0;border-bottom:1px solid var(--border);position:sticky;top:0;background-color:var(--bg);z-index:10;}
.header-content{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;}
.brand-group{display:flex;align-items:center;gap:1rem;}
.logo-img{height:50px;width:auto;display:block;}
.logo{font-family:'Comfortaa',cursive;font-size:1.5rem;font-weight:700;color:var(--accent);letter-spacing:0.5px;text-decoration:none;}
nav.main-nav{display:flex;gap:2rem;flex-wrap:wrap;}
nav.main-nav a{color:var(--text);text-decoration:none;font-size:0.95rem;font-weight:500;transition:color .2s ease;}
nav.main-nav a:hover, nav.main-nav a.active{color:var(--accent);}

/* Hero */
.hero{padding:8rem 0 6rem;text-align:center;}
h1{font-size:3.5rem;font-weight:700;color:var(--white);margin-bottom:1.5rem;line-height:1.2;letter-spacing:-2px;}
.accent{color:var(--accent);}
.tagline{font-size:1.3rem;color:var(--text-light);margin-bottom:3rem;font-weight:300;max-width:800px;margin-left:auto;margin-right:auto;}
.cta{display:inline-block;padding:1rem 2.5rem;background-color:var(--accent);color:#1a1a1a;text-decoration:none;border-radius:6px;font-weight:600;font-size:1.1rem;transition:all .3s ease;border:2px solid var(--accent);}
.cta:hover{background-color:transparent;color:var(--accent);transform:translateY(-2px);}
.cta.secondary{background:transparent;color:var(--accent);}
.cta.secondary:hover{background:var(--accent);color:#1a1a1a;}

/* Services */
.services{padding:6rem 0;}
.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem;margin-top:3rem;}
@media(max-width:968px){.services-grid{grid-template-columns:1fr;}}
.service-card{padding:2.5rem;background-color:var(--bg-card);border-radius:var(--radius);transition:all .3s ease;border:1px solid var(--border);}
.service-card:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 10px 30px rgba(35,220,130,0.1);}
.service-icon{font-size:2.5rem;margin-bottom:1rem;}
.service-card h3{color:var(--white);font-size:1.3rem;margin-bottom:0.8rem;font-weight:600;}
.service-card p{color:var(--text);font-size:0.95rem;line-height:1.7;}
.service-list{margin-top:1rem;padding-left:0;list-style:none;}
.service-list li{color:var(--text);font-size:0.9rem;line-height:1.6;padding-left:1.5rem;position:relative;margin-bottom:0.5rem;}
.service-list li:before{content:"→";color:var(--accent);position:absolute;left:0;font-weight:bold;}
.service-subtitle{color:var(--accent);font-size:0.85rem;font-weight:600;margin-top:1rem;margin-bottom:0.5rem;text-transform:uppercase;letter-spacing:0.5px;}

/* Section headings (shared by projects / about / location) */
.section-head{text-align:center;margin-bottom:1rem;}
.section-head h2{color:var(--white);font-size:2.5rem;font-weight:600;}
.section-intro{text-align:center;color:var(--text);max-width:700px;margin:0 auto 3rem;font-size:1.05rem;}

/* Projects */
.projects{padding:6rem 0;background-color:var(--bg-alt);}
.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;margin-top:2rem;}
@media(max-width:900px){.project-grid{grid-template-columns:1fr;}}
.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;display:flex;flex-direction:column;transition:all .3s ease;}
.project-card:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 10px 30px rgba(35,220,130,0.1);}
.project-tag{display:inline-block;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.05em;color:var(--accent);background:rgba(35,220,130,0.1);padding:0.25rem 0.7rem;border-radius:4px;margin-bottom:1rem;width:fit-content;}
.project-card .client{color:var(--accent);font-size:0.8rem;font-weight:600;margin-bottom:0.5rem;text-transform:uppercase;letter-spacing:.03em;}
.project-card h3{color:var(--white);font-size:1.4rem;margin-bottom:0.8rem;}
.project-card p{color:var(--text);font-size:0.95rem;margin-bottom:1.2rem;flex-grow:1;}
.stats-row{display:flex;gap:1.5rem;margin-bottom:1.4rem;flex-wrap:wrap;}
.stat-mini .num{color:var(--white);font-weight:700;font-size:1.15rem;}
.stat-mini .label{color:var(--text-dim);font-size:0.72rem;}
.project-card a.view-link{color:var(--accent);text-decoration:none;font-weight:600;font-size:0.9rem;}
.project-card a.view-link:hover{text-decoration:underline;}
.project-card.placeholder{border-style:dashed;align-items:center;justify-content:center;text-align:center;color:var(--text-dim);}

/* About */
.about{padding:6rem 0;background-color:var(--bg-about);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.about-content{max-width:850px;margin:0 auto;}
.about p{font-size:1.05rem;line-height:1.9;color:var(--text-light);margin-bottom:1.5rem;}
.about strong{color:var(--white);font-weight:600;}
.about-highlight{color:var(--accent);font-weight:600;}

/* Location */
.location{padding:6rem 0;text-align:center;background-color:var(--bg-alt);}
.location p{font-size:1.2rem;color:var(--text);max-width:600px;margin:0 auto;}

/* Footer */
footer{padding:3rem 0;text-align:center;border-top:1px solid var(--border);color:var(--text-dim);font-size:0.9rem;}
.footer-email{color:var(--accent);text-decoration:none;font-size:1.2rem;font-weight:600;transition:color .3s ease;display:block;margin-bottom:1.5rem;}
.footer-email:hover{color:var(--accent-hover);text-decoration:underline;}

/* ---- Project detail page ---- */
.breadcrumb{font-size:0.85rem;color:var(--text-dim);margin-bottom:1.2rem;}
.breadcrumb a{color:var(--accent);text-decoration:none;}
.project-hero{padding:4rem 0 2rem;}
.project-hero h1{font-size:2.4rem;line-height:1.2;margin:0.4rem 0 1.2rem;max-width:18ch;letter-spacing:-1px;}
.lede{font-size:1.1rem;color:var(--text-light);max-width:62ch;margin-bottom:2rem;font-weight:300;}
.meta-row{display:flex;gap:2rem;flex-wrap:wrap;font-size:0.85rem;color:var(--text-dim);margin-bottom:2.5rem;}
.meta-row strong{color:var(--white);font-weight:600;}

.stat-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
@media(max-width:700px){.stat-strip{grid-template-columns:1fr;}}
.stat-strip .stat{background:var(--bg-card);padding:1.6rem 1.4rem;}
.stat-strip .num{color:var(--accent);font-size:1.9rem;font-weight:700;}
.stat-strip .label{margin-top:0.4rem;font-size:0.85rem;color:var(--text-dim);}

.detail-section{padding:3.2rem 0;border-top:1px solid var(--border);}
.detail-section:first-of-type{border-top:none;}
.detail-section h2{color:var(--white);font-size:1.5rem;margin-bottom:1rem;font-weight:600;}
.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;}
@media(max-width:700px){.cols-2{grid-template-columns:1fr;}}

ul.tick{list-style:none;margin-top:0.8rem;}
ul.tick li{padding-left:1.4rem;position:relative;margin-bottom:0.7rem;font-size:0.95rem;color:var(--text-light);}
ul.tick li::before{content:'';position:absolute;left:0;top:0.55rem;width:7px;height:7px;background:var(--accent);border-radius:1px;}

.lifecycle{margin-top:1.5rem;padding:1.8rem 1.2rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;}
.lifecycle-track{display:flex;align-items:center;min-width:600px;position:relative;}
.track-line{position:absolute;top:6px;left:0;right:0;height:1px;background:var(--border);}
.node{display:flex;flex-direction:column;align-items:center;flex:1;text-align:center;position:relative;z-index:1;}
.node .dot{width:12px;height:12px;border-radius:50%;background:var(--bg-alt);border:2px solid var(--accent-hover);margin-bottom:0.7rem;}
.node.active .dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 10px rgba(35,220,130,0.5);}
.node .ntitle{font-size:0.78rem;color:var(--white);max-width:12ch;}
.node .ntime{margin-top:0.25rem;font-size:0.72rem;color:var(--accent);font-weight:600;}

.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.4rem 1.6rem;}

blockquote.testimonial{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);padding:1.8rem;font-size:1.1rem;font-style:italic;color:var(--white);}
blockquote.testimonial cite{display:block;margin-top:1rem;font-style:normal;font-size:0.8rem;color:var(--text-dim);}
.flag{display:inline-block;font-size:0.7rem;background:rgba(35,220,130,0.12);color:var(--accent);padding:0.15rem 0.5rem;border-radius:4px;margin-bottom:0.6rem;}

.cta-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2.2rem;text-align:center;}
.cta-box h3{color:var(--white);font-size:1.3rem;margin-bottom:0.6rem;}
.cta-box p{max-width:46ch;margin:0 auto 1.4rem;color:var(--text);}

@media(max-width:768px){
  h1{font-size:2.5rem;}
  .tagline{font-size:1.2rem;}
  .hero{padding:4rem 0 3rem;}
  .services-grid{grid-template-columns:1fr;}
  .section-head h2{font-size:2rem;}
}
