@font-face {
  font-family: "553a10222be6";
  src: url("./font/WOFF2/IoskeleyMono-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "553a10222be6";
  src: url("./font/WOFF2/IoskeleyMono-Italic.woff2") format("woff2");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "553a10222be6";
  src: url("./font/WOFF2/IoskeleyMono-Medium.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "553a10222be6";
  src: url("./font/WOFF2/IoskeleyMono-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --paper: #12120f;
  --ink: #f1ede7;
  --muted: #a39e93;
  --rule: #2e2c27;
  --grid-rule: color-mix(in srgb, var(--rule) 54%, transparent);
  --green: #60784e;
  --red: #b4574f;
}

* {
  box-sizing: border-box;
}

html {
  background: var(--paper);
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  margin: 0;
  background:
    linear-gradient(var(--grid-rule) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-rule) 1px, transparent 1px),
    var(--paper);
  background-position: -1px -1px;
  background-size: 44px 44px;
  color: var(--ink);
  font-family: "553a10222be6", "Courier New", Courier, monospace;
}

a {
  color: inherit;
  text-decoration-color: color-mix(in srgb, currentColor 36%, transparent);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.16em;
}

a:hover {
  color: var(--green);
  text-decoration-color: currentColor;
}

a:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 4px;
}

.page {
  width: min(100%, 1040px);
  min-height: 100vh;
  margin: 0 auto;
  padding: clamp(28px, 7vw, 88px) clamp(18px, 4vw, 44px);
}

.intro {
  min-height: min(700px, calc(100vh - 56px));
  display: grid;
  align-content: center;
  padding-bottom: 42px;
}

.connect {
  margin: 0 0 42px;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.7;
}

h1 {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(3.05rem, 8vw, 4.12rem);
  /* font-size: clamp(1.08rem, 2vw, 1.36rem); */
  font-weight: 500;
  line-height: 1.15;
}

.blurb {
  max-width: 650px;
  margin: 38px 0 48px;
  font-size: clamp(1.08rem, 2vw, 1.36rem);
  line-height: 1.65;
}

.index {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  max-width: 720px;
  color: var(--muted);
  font-size: 1.17rem;
  line-height: 1.8;
}

.index a:first-child {
  color: var(--ink);
}

.index span {
  color: var(--red);
}

.notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 34px clamp(28px, 6vw, 74px);
  border-top: 1px solid var(--ink);
  padding-top: 40px;
}

article {
  scroll-margin-top: 28px;
}

h2 {
  margin: 0 0 12px;
  color: var(--red);
  /* font-size: 0.8rem; */
  /* font-weight: 400; */
}

article p {
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.72;
}

.content-page {
  align-content: start;
}

.page-content p,
.page-content ul,
.page-content ol {
  margin: 0 0 1.2em;
}

.page-content blockquote {
  margin: 1.45em 0;
  padding: 0.2em 0 0.2em 1.15em;
  border-left: 2px solid var(--red);
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--red) 9%, transparent),
    transparent 72%
  );
}

.page-content blockquote p {
  margin-bottom: 0.85em;
  color: color-mix(in srgb, var(--ink) 78%, var(--muted));
}

.page-content blockquote > :last-child {
  margin-bottom: 0;
}

.page-content li {
  margin: 0.35em 0;
}

.page-content code {
  color: var(--ink);
}

.post-meta,
.post-list time {
  color: var(--muted);
  font-size: 0.9rem;
}

.post-list {
  width: min(100%, 720px);
  display: grid;
  gap: 28px;
  margin: 0 0 42px;
}

.post-list-item {
  border-top: 1px solid var(--rule);
  padding-top: 20px;
}

.post-list-item h2 {
  margin-bottom: 8px;
  font-size: 1.05rem;
  font-weight: 500;
}

.post-list-item p {
  margin-top: 10px;
}

.project-grid {
  width: min(100%, 900px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin: 0 0 42px;
}

.project-card {
  min-height: 100%;
}

.project-card-link {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: clamp(18px, 3vw, 24px);
  border: 1px solid var(--rule);
  border-radius: 22px;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--ink) 3%, transparent), transparent 42%),
    color-mix(in srgb, var(--paper) 92%, var(--ink));
  color: inherit;
  text-decoration: none;
  transition:
    border-color 150ms ease,
    transform 150ms ease,
    background-color 150ms ease;
}

.project-card-link:hover,
.project-card-link:focus-visible {
  border-color: color-mix(in srgb, var(--green) 78%, var(--ink));
  background-color: color-mix(in srgb, var(--green) 12%, var(--paper));
  color: var(--ink);
  transform: translateY(-2px);
}

.project-card-kicker {
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.3;
  text-transform: lowercase;
}

.project-card h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.2rem, 2.6vw, 1.65rem);
  font-weight: 500;
  line-height: 1.1;
}

.project-card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.96rem;
  line-height: 1.65;
}

.project-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: auto 0 0;
  padding: 0;
  list-style: none;
}

.project-tags li,
.project-current-tag {
  border: 1px solid var(--rule);
  border-radius: 999px;
  padding: 4px 9px;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.2;
}

.project-current-tag {
  display: inline-block;
  margin-inline-start: 8px;
  border-color: var(--green);
  vertical-align: middle;
  white-space: nowrap;
}

.empty-state {
  width: min(100%, 650px);
  margin: 0 0 42px;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.7;
}

@media (max-width: 720px) {
  .intro {
    min-height: auto;
    padding-top: 34px;
  }

  .notes {
    grid-template-columns: 1fr;
  }

  .project-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  h1 {
    font-size: 3.05rem;
  }
}

.tooltip {
  position: relative;
  cursor: pointer;
  border-bottom: 1px dashed #fff;
}

/* Hide tooltip text by default and style it */
.tooltip::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: 125%;
  left: 50%;
  transform: translateX(-50%);
  background-color: #333;
  color: #fff;
  padding: 5px 10px;
  border-radius: 4px;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease;
}

/* Show the tooltip on hover */
.tooltip:hover::after {
  opacity: 1;
  visibility: visible;
}
