/* ===== Fonts ===== */
@font-face {
  font-family: 'HeaderFont';
  src: url('fonts/KiwiSoda.ttf') format('truetype');
}
@font-face {
  font-family: 'BodyFont';
  src: url('fonts/IBMPlexMono-Regular.ttf') format('truetype');
}

/* ===== Body ===== */
body {
  font-family: 'BodyFont', sans-serif;
  margin: 0;
  padding: 0;
  /*background-color: #00b4ff;*/
  display: flex;
    min-height: 100vh;
  flex-direction: column;
  align-items: center;
}

/* Homepage only */
body.homepage nav {
  background-color: transparent !important;
}

body.homepage nav ul li a {
  color: white !important;
  transition: color 0.3s ease;
}

body.homepage nav ul li a:hover,
body.homepage nav ul li a:focus {
  color: #00b4ff !important;
}

/* Homepage hamburger override */
body.homepage .hamburger div {
  background-color: white !important; /* force white lines */
}

/* Optional: hover effect */
body.homepage .hamburger:hover div {
  background-color: #00b4ff !important; /* lightspeed blue */
}

a:hover {
  color: red;
}

/* Ensure 3 lines visible */
body.homepage .hamburger {
  display: none;          /* already mobile only, but enforce */
  flex-direction: column;
  gap: 5px;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
}
main {
  flex: 1;             /* takes remaining space */
  display: flex;       /* for centering content inside main */
  justify-content: center;
  align-items: center;
  text-align: center;
}


/* show only on mobile (same breakpoint as your main CSS) */
@media (max-width: 768px) {
  body.homepage .hamburger {
    display: flex; /* visible only on mobile */
  }
}


.container {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    z-index: 1;
    color:white;
    /*background: rosybrown;
    border-radius: 8px;*/
}

.fireworks, .fireworks2 {
  position: fixed;   /* stays in the background */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;       /* behind all content */
  pointer-events: none; /* lets clicks pass through */
  overflow: hidden;
}

canvas#p5-container {
  position:relative;
  width:800px;
}

canvas#fireworks {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  background: transparent; /* or black if you want deep space */
  z-index: -1;
}

.twitter-text img {
  display: block;      /* ensures it’s treated as a block for centering */
  margin: 0 auto;      /* horizontally centers the block */
  max-width: 33%;      /* keeps your original sizing */
  height: auto;
  transition: transform 0.3s ease;
}

.twitter-text span{
  display: inline-block;
  transition: transform 0.4s ease;
}

.twitter-text h3{
  display: inline-block;
  transition: transform 0.4s ease;
}

/* give extra space for spaces */
.twitter-text span.space {
  width: 0.8em; /* tweak to taste */
  display: inline-block;
}

/* ===== Navbar ===== */
nav {
  width: 100%;
  background-color: #00b4ff;
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: none;
  transition: box-shadow 0.3s;
}

nav.scrolled {
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.nav-container {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 20px;
}
.logo img { height: 40px; width: auto; }
nav ul {
  list-style: none;
  display: flex;
  gap: 20px;
  margin: 0;
  padding: 0;
}
nav ul li a {
  text-decoration: none;
  color: #222;
  font-weight: 500;
  transition: color 0.2s;
}
nav ul li a:hover { color: #007bff; }

/* Hamburger */
/* Hamburger */
.hamburger {
  display: none;
  flex-direction: column;
  cursor: pointer;
  gap: 5px;
  position: absolute; /* pin it */
  right: 20px;        /* distance from right edge */
  top: 50%;           /* vertically center */
  transform: translateY(-50%);
}
.hamburger div { width: 25px; height: 3px; background-color: #222; }
/* Mobile Styles */
@media (max-width: 768px) {
  .hamburger { display: flex; }

  nav ul {
    flex-direction: column;
    width: 100%;
    display: none;
    margin-top: 0px; /* push menu below nav bar */
    background-color: #00b4ff;
    position: absolute; /* overlay menu */
    left: 0;
    top: 100%;
    z-index: 999;
    box-shadow: 0 4px 4px rgba(0,0,0,0.1);
  }

  nav ul.show { display: flex; }

  nav ul li {
    width: 100%;
    text-align: center;
    margin: 10px 0;
  }
}

/* ===== Main Content ===== */
h1 { font-family: 'HeaderFont', sans-serif; text-align: center;}
.container { text-align: center; }
.container img { max-width: 300px; height: auto; display: block; margin: 0 auto; }
.container p { margin-top: 10px; font-size: 18px; color: #333; }
.container a {color: #00b4ff;}
.container a:hover {color: red;}

article {
  max-width: 800px;
  margin: 40px auto;
  padding: 20px;
  background-color: white;
  border-radius: 8px;
  /*box-shadow: 0 2px 10px rgba(0,0,0,0.05);*/
  position: relative;
}

article h1 { margin-top: 2rem; margin-bottom: 2rem; font-size: 35px;}

article h2, article h3 { margin-top: 2rem; }

article a {color: #00b4ff;}



article p { margin: 1rem 0; font-size: 1.05rem; }

.article-header {
  display: flex;
  justify-content: flex-end; /* pushes date to the right */
  margin-bottom: 10px;       /* space below header */
  /*font-size: 0.9rem;*/
  color: #555;
  /*font-style: italic;*/
}

.date-published {
  display: inline-block;        /* ensure span shows properly */
}

/*footer {
  text-align: center;
  color: black;
  font-size: 0.9rem;
  padding: 40px 20px;
}*/

footer {
  /*position:fixed;*/           /* ensures it’s visible */
  width: 100%;              /* full width */
  text-align: center;       /* centers the text */
  padding: 2rem;            /* spacing inside */
  bottom:0;
  box-sizing: border-box;   /* ensures padding doesn't break width */
}

/* Apply BodyFont to the entire form */
.contact-form,
.contact-form input,
.contact-form textarea,
.contact-form button,
.contact-form label {
  font-family: 'BodyFont', sans-serif;
}

/* Optional: make form look nicer */
.contact-form {
  max-width: 600px;
  margin: 40px auto;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.contact-form input,
.contact-form textarea {
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 5px;
  font-family: inherit; /* ensures BodyFont is used */
  font-size: 1rem;
}

.contact-form button {
  padding: 10px 20px;
  font-size: 1rem;
  cursor: pointer;
  background-color: #00b4ff;
  color: white;
  border: none;
  border-radius: 5px;
  font-family: inherit;
}

#blog-content {
  overflow: hidden;
  transition: height 0.4s ease;
  width: 100%;
  box-sizing: border-box;
}

#blog-list {
  transition: height 0.4s ease, opacity 0.4s ease;
}

.blog-index {
  margin: 0.5em 0;
}

/*.blog-index a {
  color: #00b4ff;
  text-decoration: none;
}

.blog-index a:hover {
  text-decoration: underline;
}*/

#blog-content img {
  max-width: 75%;
  height: auto;
  display: block;
  margin: 1em auto;
}

@media (max-width: 768px) {
  #blog-content img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 1em auto;
  }
}

/*#blog-content a {
  color: #00b4ff;
}*/

.back-link {
  text-align: center;
  margin: 1.5em 0;
}
