body {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    max-width: 1000px;
    margin: 0 auto;
    line-height: 1.4;
    text-align: center;
    //display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    position: relative;
    background-image: none;
	-webkit-user-select: none; /* Chrome, Safari */
	-moz-user-select: none;    /* Firefox */
	-ms-user-select: none;     /* IE/Edge */
	user-select: none;         /* Standard */
}

img {
  object-fit: contain;
  border-radius: 8px;
  -webkit-user-drag: none;  /* Chrome, Safari */
  -khtml-user-drag: none;   /* Older Konqueror */
  -moz-user-drag: none;     /* Firefox (non-standard) */
  -o-user-drag: none;       /* Older Opera */
  user-drag: none;          /* Standard */
}

a {
    color: #0366d6;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s ease;
	-webkit-user-select: text; /* Chrome, Safari */
	-moz-user-select: text;    /* Firefox */
	-ms-user-select: text;     /* IE/Edge */
	user-select: text;         /* Standard */
}

a:hover {
    color: #0056b3;
    text-decoration: underline;
}

.logo {
    height: 50vh;
	cursor:pointer;
}

.astronauts {
	position: fixed;
	top: 0; left: 0;
	width: 100vw; height: 100vh;
	z-index: 1; 
	pointer-events: none;
}


.astronaut {
	position: absolute;
	width: 7vw; /* Small size */
	animation: spin 6s linear infinite;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}


@keyframes backgroundScroll {
    from {
        background-position: 0 0;
    }

    to {
        background-position: 100% 100%;
    }
}

body::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background-color: #ffffff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill-rule='evenodd'%3E%3Cg id='hexagons' fill='%23ddd' fill-opacity='0.4' fill-rule='nonzero'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    animation: backgroundScroll 120s linear infinite;
}

.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top:64px;
}

.portfolio-item {
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  border-radius: 14px;
  padding: 18px;
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: box-shadow 0.2s;
}
.portfolio-item:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,0.18);
}
.portfolio-thumb img {
  width: 220px;
  height: 140px;
  object-fit: contain;
  border-radius: 8px;
  margin-bottom: 10px;
}
.portfolio-title {
  font-weight: bold;
  font-size: 1.2em;
  margin-bottom: 6px;
  text-align: center;
}
.portfolio-desc {
  color: #555;
  font-size: 0.97em;
  margin-bottom: 12px;
  text-align: center;
}
.portfolio-stars {
  color: #FDB23D;
  font-size: 1.1em;
  font-weight: bold;
  align-self: flex-end;
}

.blog-grid {
  display: grid;
  //grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top:64px;
}
.blog-item {
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  border-radius: 14px;
  padding: 18px;
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: left;
  justify-content:left;
  text-align:left;
  transition: box-shadow 0.2s;
  max-height:10vw;
  overflow:auto;
  text-overflow: ellipsis;
}
.blog-title {
  font-weight: bold;
  font-size: 1.2em;
  margin-bottom: 6px;
  text-align: left;
  color:black;
  overflow:auto;
}
.blog-description {
  text-align: left;
  color:black;
  overflow:auto;
  //overflow:hidden;
  text-overflow: ellipsis;
  //max-height:10vw;
}
.blog-item:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,0.18);
}
.blog-thumb img {
  width: 10vw;
  border-radius: 8px;
  margin-right:20px;
  float:left;
}
.blog-body {
    text-align: left;
    justify-content: center;
    align-items: left;
    min-height: 100vh;
    position: relative;
    overflow: hidden;
	box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  	border-radius: 14px;
  	padding: 18px;
  	background: #fff;
	-webkit-user-select: text; /* Chrome, Safari */
	-moz-user-select: text;    /* Firefox */
	-ms-user-select: text;     /* IE/Edge */
	user-select: text;         /* Standard */
}
.blog-body img {
	display:block;
	margin:auto;
}
.blog-container{
  max-height:500px;

}
.blog-body > a{
	color:black;
}
/* Code highlighting: */
.c1 {
	color: gray;
	font-weight:bold;
}
.p {
	color:gray;
}
.kt {
	color:blue;
}
.nf {
	color: green;
}
.mi {
	color:purple;
}
.k {
	color:red;
}
.kn {
	color:red;
}
.nn {
	color:orange;
}
.n {
	color:blue;
}
.s1 {
	color:#b8860b;
}
.s2 {
	color:#b8860b;
}
.nb {
	color:green;
}
.se{
	color:darkmagenta;
}
.si{
	color:brown;
}

blockquote{
	background: #f9f9f9;
	border-left: 10px solid #ccc;
	margin: 1.5em 10px;
	padding: 0.5em 10px;
}

.data {
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  border-radius: 14px;
  display: flex;
  width:auto;
  height:34vh;
  
  font-family: sans-serif;
  justify-content: center;
  margin-top: 40px;
  background: #ffffff;
  color: #24292f;
}

.title {
	cursor:pointer;
	//position:fixed;
	top:0px;
	left:5px;
	right:5px;
	text-align:center;
}

.codehilite{
	padding:2px 10px 2px 10px;
	background:#eee;
	border: #ccc 3px solid;
	border-radius:5px;
	overflow:auto;
	width:fit-content;
	max-width:98%;
}

b{
	-webkit-user-select: text; /* Chrome, Safari */
	-moz-user-select: text;    /* Firefox */
	-ms-user-select: text;     /* IE/Edge */
	user-select: text;         /* Standard */
}

.h1link {
	cursor:pointer;
	color:black;
}
.h1link:hover {
    color: black;
    text-decoration: none;
}


@media (max-width: 600px) {
    .logo-container {
        max-width: 250px;
    }
}

.linker {
    grid-template-rows: repeat(1, minmax(0, 1fr));
    display: grid;
}

.pyramid {
    display: grid;
    grid-template-rows: repeat(1, minmax(0, 1fr));
    padding: 10px;
}


#heatmapContainer {
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  border-radius: 14px;
  width:auto;
  margin:auto;
  display: flex;
  justify-content: center;
  background: #ffffff;
  color: #24292f;
  padding: 20px;
}

svg {
  overflow: visible;
}

.day {
}

.month-label {
  fill: #57606a;
  font-size: 10px;
}

.week-label {
  fill: #57606a;
  font-size: 9px;
  text-anchor: end;
}

.tooltip {
  position: fixed;
  padding: 6px 10px;
  background: #ffffff;
  color: #24292f;
  border: 1px solid #d0d7de;
  border-radius: 4px;
  font-size: 12px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  z-index: 999;
}
