/* Minimal Developer Portfolio */

:root {
   /* High contrast base */
   --color-bg: #0c0c0c;
   --color-text: #e8e8e8;
   --color-text-dim: #888888;
   --color-border: #2a2a2a;

   /* One subtle accent - muted teal */
   --color-accent: #5f9ea0;
   --color-accent-hover: #7fbfc1;

   /* Typography */
   --font-mono: ui-monospace, "Cascadia Code", "SF Mono", Consolas, "Liberation Mono", monospace;
   --font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

   /* Layout */
   --max-width: 40rem;
   --spacing: 1.5rem;
}

/* Reset */
*, *::before, *::after {
   box-sizing: border-box;
   margin: 0;
   padding: 0;
}

/* Base */
html {
   scroll-behavior: smooth;
}

body {
   font-family: var(--font-body);
   font-size: 1.125rem;
   line-height: 1.7;
   color: var(--color-text);
   background: var(--color-bg);
   padding: var(--spacing);
}

/* Typography - Headings */
h1, h2, h3 {
   font-family: var(--font-mono);
   font-weight: 400;
   letter-spacing: 0.02em;
   color: var(--color-text);
   line-height: 1.3;
   margin-bottom: 0.5em;
}

h1 {
   font-size: 1.75rem;
}

h2 {
   font-size: 1rem;
   text-transform: uppercase;
   letter-spacing: 0.1em;
   color: var(--color-text-dim);
   margin-top: 2.5rem;
   margin-bottom: 1rem;
}

h3 {
   font-size: 1.125rem;
   margin-top: 1.5rem;
}

p { margin-bottom: 1em; }

/* Subtle cursor blink - one touch of personality */
@keyframes blink {
   50% { opacity: 0; }
}

header h1::after {
   content: "_";
   color: var(--color-accent);
   animation: blink 1.2s step-end infinite;
   margin-left: 0.05em;
   font-weight: 300;
}

/* Respect user's motion preferences */
@media (prefers-reduced-motion: reduce) {
   header h1::after {
      animation: none;
      opacity: 1;
   }
}

/* Links */
a {
   color: var(--color-accent);
   text-decoration: none;
   transition: color 0.15s ease, text-shadow 0.15s ease;
}

a:hover, a:focus {
   color: var(--color-accent-hover);
   text-decoration: underline;
   text-shadow: 0 0 8px rgba(95, 158, 160, 0.5);
}

/* Layout */
header, main, footer {
   max-width: var(--max-width);
   margin: 0 auto;
}

/* Header */
header {
   text-align: center;
   padding: 3rem 0 2rem;
   margin-bottom: 2rem;
}

header p {
   color: var(--color-text-dim);
   margin-bottom: 1.5rem;
   font-size: 1rem;
}

header nav {
   display: flex;
   gap: 1.5rem;
   justify-content: center;
   flex-wrap: wrap;
}

header nav a {
   font-family: var(--font-mono);
   font-size: 0.875rem;
   color: var(--color-text-dim);
}

header nav a:hover {
   color: var(--color-accent);
}

/* Sections */
section {
   margin-bottom: 3rem;
}

/* Skills - definition list */
dl {
   margin-top: 1rem;
}

dt {
   font-family: var(--font-mono);
   font-size: 0.8125rem;
   text-transform: uppercase;
   letter-spacing: 0.08em;
   color: var(--color-text-dim);
   margin-top: 1rem;
}

dd {
   color: var(--color-text);
   margin-top: 0.25rem;
}

/* Lists */
ul {
   margin-top: 1rem;
   padding-left: 1.25rem;
}

li {
   margin-bottom: 0.5rem;
}

li::marker {
   color: var(--color-text-dim);
}

/* Projects */
article {
   margin-bottom: 2rem;
   padding-bottom: 2rem;
   border-bottom: 1px solid var(--color-border);
}

article:last-child {
   border-bottom: none;
}

article h3 {
   margin-top: 0;
   margin-bottom: 0.25em;
}

article p {
   margin-bottom: 0.75em;
   color: var(--color-text-dim);
}

article > a {
   font-family: var(--font-mono);
   font-size: 0.875rem;
}

/* Footer */
footer {
   text-align: center;
   padding: 3rem 0 2rem;
   margin-top: 2rem;
   color: var(--color-text-dim);
   font-size: 0.875rem;
}

footer a {
   color: var(--color-text-dim);
}

footer a:hover {
   color: var(--color-accent);
}

/* Text selection */
::selection {
   background: var(--color-accent);
   color: var(--color-bg);
}

/* Responsive */
@media (max-width: 480px) {
   body {
      font-size: 1rem;
   }

   h1 { font-size: 1.5rem; }

   header nav a {
      font-size: 1rem;
   }
}

@media (max-width: 360px) {
   body {
      padding: 1rem;
   }

   h1 { font-size: 1.25rem; }
}
