
/* === Charles' Static Portfolio Styles ===
   Tips: Edit colors, fonts, and spacing here.
================================================ */
:root{
  --bg:#0b1220;
  --card:#0f172a;
  --muted:#94a3b8;
  --text:#e2e8f0;
  --brand1:#0ea5e9; /* sky */
  --brand2:#22c55e; /* green */
  --ring: rgba(34,197,94,.35);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:radial-gradient(1200px 700px at 20% -10%, rgba(34,197,94,.12), transparent),
                         radial-gradient(1000px 600px at 120% 20%, rgba(14,165,233,.12), transparent),
                         var(--bg);
  color:var(--text);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Segoe UI Emoji";
  scroll-behavior:smooth;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:100%;max-width:1100px;margin:0 auto;padding:0 20px}
.nav{
  position:sticky;top:0;z-index:50;background:rgba(11,18,32,.6);backdrop-filter: blur(12px);
  border-bottom:1px solid rgba(148,163,184,.12)
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.logo{font-weight:700;letter-spacing:.3px}
.logo span{background:linear-gradient(90deg,var(--brand1),var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent;}
.nav a{padding:8px 12px;border-radius:10px}
.nav a:hover{background:rgba(148,163,184,.12)}

.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center;min-height:72vh;padding:40px 0}
.hero .kicker{display:inline-flex;gap:8px;align-items:center;padding:6px 10px;border:1px solid rgba(148,163,184,.18);
  border-radius:999px;color:var(--muted);font-size:12px;}
.badge-dot{width:8px;height:8px;border-radius:999px;background:linear-gradient(90deg,var(--brand1),var(--brand2));box-shadow:0 0 0 6px rgba(34,197,94,.15)}
.title{font-size:46px;line-height:1.05;margin:14px 0 6px}
.title strong{background:linear-gradient(90deg,var(--brand1),var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent}
.subtitle{color:var(--muted);font-size:18px}
.hero-actions{margin-top:16px;display:flex;gap:12px;flex-wrap:wrap}
.btn{
  padding:12px 16px;border-radius:14px;border:1px solid rgba(148,163,184,.18);
  background:linear-gradient(180deg, rgba(15,23,42,.9), rgba(15,23,42,.7));
  color:var(--text);cursor:pointer;transition:.2s;display:inline-flex;gap:8px;align-items:center
}
.btn.primary{background:linear-gradient(90deg,var(--brand1),var(--brand2));color:#031016;border:none;font-weight:700}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px -10px var(--ring)}

.card{
  background:linear-gradient(180deg, rgba(2,6,23,.6), rgba(2,6,23,.7));border:1px solid rgba(148,163,184,.16);
  border-radius:18px;padding:18px;box-shadow:0 10px 30px -20px rgba(0,0,0,.5)
}
.section{padding:64px 0}
.section h2{font-size:30px;margin:0 0 16px}
.section p.lead{color:var(--muted);margin:0 0 18px}
.grid{display:grid;gap:16px}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
@media (max-width: 900px){
  .hero{grid-template-columns:1fr}
  .grid.cols-3{grid-template-columns:1fr}
  .grid.cols-2{grid-template-columns:1fr}
}

/* Project cards */
.project{position:relative;overflow:hidden}
.project .thumb{border-radius:12px;overflow:hidden;border:1px solid rgba(148,163,184,.16);margin-bottom:10px}
.project .tool{font-size:12px;color:var(--muted)}
.project h3{margin:6px 0}

/* Skills */
.skills-list{display:flex;flex-wrap:wrap;gap:10px}
.chip{padding:8px 12px;border-radius:999px;border:1px solid rgba(148,163,184,.18);color:var(--muted)}

/* Contact */
.contact-form{display:grid;gap:12px}
.input, .textarea{
  width:100%;padding:12px 14px;border-radius:12px;background:#0b1220;border:1px solid rgba(148,163,184,.18);color:var(--text)
}
.textarea{min-height:120px;resize:vertical}
.footer{padding:26px 0;color:var(--muted);border-top:1px solid rgba(148,163,184,.12)}

/* === Reveal Animations === */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease, transform .6s ease}
.reveal.revealed{opacity:1;transform:none}
/* subtle hover float */
.float:hover{transform:translateY(-2px);transition:transform .2s}
.card img {
  width: 100%;
  height: 200px;        /* fixed height */
  object-fit: contain;  /* keep full image inside box */
  background-color: #fff; /* adds white background for empty space */
  padding: 5px;
  border-radius: 10px;
}

/* Banner inside .reveall (not affected by thumbnail rules) */
.reveall .card img {
  width: 100%;        /* full width */
  height: auto;       /* keep natural height */
  border-radius: 15px; /* optional: rounded edges */
  object-fit: cover;   /* fills without leaving borders */
  display: block;
}


.cardd img {
  height: 300px;        /* increase height so shoulders fit */
  width: 85%;
  object-fit: cover;    /* still fill container */
  object-position: top; /* focus higher, so it includes shoulders */
  border-radius: 10px;
  margin-bottom: 10px;
}


.lead a {
  display: flex;
  align-items: center;
  gap: 8px; /* space between icon and text */
  text-decoration: none;
  margin-bottom: 10px;
  font-size: 1.1rem;
}

.lead a:hover {
  color: #0077b5; /* LinkedIn blue on hover */
}
.thumb {
  width: 100%;
  height: 180px; /* thumbnail height like YouTube */
  overflow: hidden;
  border-radius: 10px;
  margin-bottom: 10px;
}

.thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* crops image neatly */
  border-radius: 10px;
  display: block;
}
