/* Minimal dark palette used with Tailwind */
:root{
  --bg:#121212;
  --fg:#eaeaea;
  --link:#82aaff;
  --accent:#c792ea;
  --meta:#aaaaaa;
  --code:#1e1e1e;
  --border:#374151;
  --font:"Libre Franklin","Segoe UI","Helvetica Neue",sans-serif;
}
body{font-family:var(--font)!important;}
.font-sans{font-family:var(--font)!important;}
*{box-sizing:border-box;}
a{color:var(--link);} a:hover{color:var(--accent);}
.site-shell{background:var(--bg);color:var(--fg);}
.site-muted{color:var(--meta)!important;}
.site-link{color:var(--link);}
.site-link:hover{color:var(--accent);}
.site-panel{background:var(--code);border:1px solid var(--border);}
.site-input{
  background:var(--code);
  border:1px solid var(--border);
  color:var(--fg);
}
.site-input::placeholder{color:var(--meta);opacity:1;}
.site-button{
  background:var(--link);
  color:#fff;
  transition:background-color .2s ease,color .2s ease;
}
.site-button:hover{background:var(--accent);color:#fff;}
.site-pill{
  background:var(--code);
  color:var(--link);
}
.site-pill:hover{color:var(--accent);}
.site-pill-active{
  background:var(--fg);
  color:var(--bg);
  font-weight:600;
}
.site-nav-link{color:var(--link);}
.site-nav-link:hover{color:var(--accent);}
.site-nav-link-active{
  color:var(--fg);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:4px;
}
.site-border{border-color:var(--border)!important;}
.site-brand-text{color:var(--fg);}
.site-logo{
  display:block;
  max-height:4.5rem;
  width:auto;
  max-width:min(100%, 24rem);
}
.site-sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.tag{background:var(--code);padding:.25em .5em;border-radius:.25rem;color:var(--meta);font-size:.75rem;text-decoration:none;}
.meta{color:var(--meta);font-size:.875rem;}
main pre,main code{background:var(--code);padding:.2em .4em;border-radius:.25rem;font-family:monospace;color:#dcdcdc;}
/* make article images interactive for lightbox */
article img{
  display:block;
  margin-block:1em;
  cursor:zoom-in;
  max-width:100%;
  height:auto;

}
.lightbox-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;}
.lightbox-overlay img{max-width:90%;max-height:90%;box-shadow:0 0 10px #000;width:auto;height:auto;}
.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff;font-size:2rem;padding:0 .5rem;cursor:pointer;user-select:none;}
.lightbox-prev{left:1rem;}
.lightbox-next{right:1rem;}
/* basic typography for posts */
article h1,article h2,article h3,article h4,article h5,article h6{
  margin-top:1.25em;margin-bottom:.75em;font-weight:600;
}
article h1{font-size:2rem;}
article h2{font-size:1.5rem;}
article h3{font-size:1.25rem;}
article h4{font-size:1.125rem;}
article h5{font-size:1rem;}
article h6{font-size:.875rem;}
article blockquote{border-left:4px solid var(--accent);padding-left:1em;margin:1em 0;color:var(--meta);font-style:italic;}
article table{width:100%;border-collapse:collapse;margin:1em 0;}
article th,article td{border:1px solid var(--border);padding:.5em;}
article th{background:var(--code);}
article table tr:nth-child(even) td{background-color:rgba(255,255,255,.05);}
.pagination a{
  display:inline-block;
  margin:0 .25em;
  padding:.25em .5em;
  border-radius:.25rem;
  background:var(--code);
}
.pagination strong{margin:0 .25em;}
article iframe{margin-bottom:1em;}
article iframe[src*="youtube.com"],article iframe[src*="youtu.be"]{
  display:block;
  width:100% !important;
  aspect-ratio:16/9;
  height:auto !important;
  max-width:100%;
  margin-bottom:1em;
}
@media (max-width:600px){
  article iframe[src*="youtube.com"],article iframe[src*="youtu.be"]{max-height:60vh;}
}

.project-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1.5rem;
}
.project-card{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  min-height:100%;
  border-radius:1rem;
  background:
    linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01)),
    var(--code);
  box-shadow:0 1.25rem 2.5rem rgba(0,0,0,.18);
}
.project-card-media{
  display:block;
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:
    radial-gradient(circle at top,#2f4058 0%,#15191f 52%,#0f1115 100%);
  border-bottom:1px solid var(--border);
}
.project-card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  margin:0;
  cursor:pointer;
  transition:transform .35s ease;
}
.project-card:hover .project-card-media img{
  transform:scale(1.03);
}
.project-card-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  padding:1.5rem;
  color:var(--meta);
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.8rem;
}
.project-card-body{
  display:flex;
  flex:1;
  flex-direction:column;
  gap:.85rem;
  padding:1.1rem 1.15rem 1.2rem;
}
.project-card-meta{
  margin:0;
}
.project-card-title{
  margin:0;
  font-size:1.35rem;
  line-height:1.25;
}
.project-card-title a{
  color:var(--fg);
  text-decoration:none;
}
.project-card-title a:hover{
  color:var(--link);
}
.project-card-description{
  margin:0;
  color:var(--fg);
  line-height:1.65;
}
.project-card-tags{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}
.project-card-cta{
  margin:0;
  margin-top:auto;
  padding-top:.25rem;
}

@media (min-width:768px){
  .project-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (min-width:1024px){
  .project-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
