:root{
  --bg:#ffffff;
  --bg-alt:#f6f7f9;
  --text:#16181d;
  --muted:#5b6270;
  --border:#e4e6ea;
  --accent:#1733ff;   /* echoes the final color in the hero's letter animation */
  --accent-2:#ff3dee;

  --container: clamp(320px, 90vw, 960px);
  --space-s: clamp(8px, 2vw, 16px);
  --space-m: clamp(20px, 5vw, 40px);
  --space-l: clamp(40px, 10vw, 96px);
}

*, *::before, *::after{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  line-height:1.55;
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
}

img, svg{ max-width:100%; display:block; }

.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;
}

a{ color:var(--accent); text-decoration:none; }
a:hover, a:focus-visible{ text-decoration:underline; }

.container{
  width:var(--container);
  margin-inline:auto;
  padding-block: var(--space-l);
}

h1, h2, h3{
  font-family:'GameBoy',system-ui,sans-serif;
  font-weight:400;
  letter-spacing:.02em;
  line-height:1.15;
  margin:0 0 var(--space-s);
}

h2{
  font-size:clamp(22px, 4vw, 34px);
  color:var(--accent);
}

p{ margin:0 0 var(--space-s); color:var(--text); }

.section-kicker{
  display:block;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:6px;
}

.placeholder{
  color:var(--muted);
  font-style:italic;
}

#about{ background:var(--bg); }
#contact{ background:var(--bg-alt); border-top:1px solid var(--border); }

.about-grid{
  display:grid;
  gap:var(--space-m);
  grid-template-columns:1fr;
  grid-template-areas:
    "photo"
    "bio"
    "skills";
}
@media (min-width:640px){
  .about-grid{
    grid-template-columns:auto 1fr;
    grid-template-areas:
      "photo bio"
      "skills skills";
  }
}
@media (min-width:900px){
  .about-grid{
    grid-template-columns:auto 2fr 1fr;
    grid-template-areas:"photo bio skills";
  }
}

.about-photo{ grid-area:photo; }
.about-bio{ grid-area:bio; }
.about-skills{ grid-area:skills; }

.about-photo img{
  width:clamp(140px, 30vw, 220px);
  height:auto;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:16px;
  border:1px solid var(--border);
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}

.btn{
  display:inline-block;
  margin-top:var(--space-s);
  padding:10px 24px;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-weight:600;
  font-size:14px;
  letter-spacing:.02em;
  text-decoration:none;
  transition:background-color .15s ease;
}
.btn:hover, .btn:focus-visible{
  background:#121f9e;
  color:#fff;
  text-decoration:none;
}

.skills-list{
  list-style:none;
  margin:0; padding:0;
  display:flex; flex-wrap:wrap;
  gap:8px;
}
.skills-list li{
  border:1px solid var(--border);
  border-radius:999px;
  padding:6px 14px;
  font-size:14px;
  color:var(--muted);
}

.contact-links{
  list-style:none;
  margin:var(--space-s) 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.contact-links a{
  font-size:clamp(16px, 2.4vw, 20px);
  font-weight:600;
}

footer{
  padding:var(--space-m) var(--space-s);
  text-align:center;
  color:var(--muted);
  font-size:13px;
  background:var(--bg-alt);
  border-top:1px solid var(--border);
}
