@import "tailwindcss";

@font-face {
    font-family: 'IBMPlexMono';
    src: url("/fonts/IBMPlexMono-Regular.woff2") format("woff2");
}

.ibmplexmono {
    font-family: 'IBMPlexMono', monospace;
}

body {
    font-family: 'IBMPlexMono', Fallback, sans-serif;
}

html {
    font-family: 'IBMPlexMono', monospace;
}

:root {
  /* Color Variables */
  --color-background: #000000;
  --color-primary: #393939;
  --color-secondary: #262626;
  --color-border: #181818;
  --color-accent: #ef6300;
  --color-text: #ffffff;
  --color-link: #3b82f6;

  /* Spacing Variables */
  --spacing-xs: 0.25rem;
  --spacing-sm: 0.5rem;
  --spacing-md: 1rem;
  --spacing-lg: 1.5rem;
  --spacing-xl: 2rem;
}

/* Base Styles */
body {
  background-color: var(--color-background);
  margin: 0;
  font-family: 'IBMPlexMono', monospace;
  color: var(--color-text);
}

/* Header Styles */
.header-container {
  width: 20%;
  min-width: 100px;
  padding: 2.5rem;
  background-color: var(--color-primary);
  border-right: 8px solid var(--color-border);
  border-bottom: 8px solid var(--color-border);
}

/* Navigation Styles */
.nav-link {
  background-color: var(--color-primary);
  color: var(--color-text);
  border: 2px solid var(--color-secondary);
  transition: border-color 0.2s ease;
}

.nav-link:hover {
  border-color: var(--color-accent);
}

/* Project Card Styles */
.project-card {
  width: 15rem;
  height: 20rem;
  border: 4px solid var(--color-background);
  background-color: var(--color-secondary);
  padding: 0.5rem;
}

.project-card img {
  width: 83.333%;
  height: 11.25rem;
  object-fit: cover;
  border: 2px solid var(--color-text);
}

.project-card a {
  color: var(--color-link);
  text-decoration: none;
}

.project-card a:hover {
  color: var(--color-accent);
}

/* Skills List Styles */
.skills-list {
  list-style: none;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  text-align: left;
}

.skills-list li {
  border-bottom: 1px solid #4a4a4a;
  padding-bottom: 0.5rem;
  margin-bottom: 0.5rem;
}

.skills-list li:last-child {
  border-bottom: none;
}

/* Responsive Design */
@media (max-width: 768px) {
  .header-container {
    width: 90%;
  }

  .project-card {
    width: 100%;
  }
}

/* Focus States for Accessibility */
a:focus,
button:focus {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

/* Print Styles */
@media print {
  body {
    background-color: white;
    color: black;
  }

  .project-card {
    break-inside: avoid;
  }
}

/* ASCII Art Styles */
pre {
  font-family: 'IBMPlexMono', monospace;
  white-space: pre;
  overflow-x: auto;
  line-height: 1.2;
  tab-size: 4;
  -moz-tab-size: 4;
  display: inline-block;
  min-width: min-content;
}

.ascii-container {
  text-align: initial;
  width: 100%;
  overflow-x: auto;
}

.ascii-art {
  font-family: 'IBMPlexMono', monospace;
  white-space: pre !important;
  margin: 1em 0;
  padding: 1em;
  background-color: var(--color-secondary);
  border: 1px solid var(--color-border);
  border-radius: 4px;
  display: block;
  overflow-x: auto;
}
code {
  font-family: 'IBMPlexMono', monospace;
  white-space: pre !important;
}
