:root {
  --bg: #0e0e0e;
  --fg: #e6e6e6;      /* primary text (near-white) */
  --muted: #c8c8c8;   /* paragraph text */
  --accent: #ffffff;  /* links */
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: "Chivo Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  line-height: 1.6;
}

/* Page-load fade-in */
html.is-preload body {
  opacity: 0;
}

body {
  transition: opacity 1900ms ease-in-out;
}

.container {
  max-width: 760px;
  margin: 0 auto; /* center horizontally */
  padding: 84px 24px 160px 24px; /* symmetric side padding */
}

.name {
  font-weight: 600;
  font-size: 20px;
  letter-spacing: 0.02em;
  margin: 0 0 16px 0;
}

.tag {
  margin: 0 0 40px 0;
  font-size: 14px;
  color: var(--fg);
}

.underline {
  color: var(--accent);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

.group { margin: 28px 0 28px; }
.toggle {
  appearance: none;
  background: transparent;
  border: none;
  color: var(--fg);
  font-family: "Chivo Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 14px;
  padding: 6px 30px;
  cursor: pointer;
  text-align: left;
}
.toggle:focus { outline: 1px dashed #555; outline-offset: 2px; }

.content {
  padding-left: 36px; /* push content further right under the label */
  margin-top: 8px;
  font-size: 14px;
  color: var(--muted);
}
.content p { margin: 0 0 14px 0; }

.hover-photo {
  position: relative;
  color: #6c87b7; /* slightly darker than paragraph text */
}
.hover-photo::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -8px; /* appear just above the word */
  transform: translate(-50%, -100%);
  width: 160px;
  height: 160px;
  background-image: var(--img);
  background-size: cover;
  background-position: center;
  border-radius: 9999px;
  /* subtle feathered edge */
  -webkit-mask-image: radial-gradient(circle at center, #000 62%, rgba(0,0,0,0) 78%);
  mask-image: radial-gradient(circle at center, #000 62%, rgba(0,0,0,0) 78%);
  box-shadow: 0 10px 28px rgba(0,0,0,0.5);
  opacity: 0;
  pointer-events: none;
  transition: opacity 120ms ease-in-out, transform 160ms ease;
}
.hover-photo:hover::after {
  opacity: 1;
  transform: translate(-50%, -110%);
}

.social {
  display: flex;
  gap: 20px;
  align-items: center;
  margin-top: 48px;
  padding-left: 4px;
}
.glyph { font-family: "IBM Plex Mono", monospace; }

.emblem {
  position: fixed;
  left: 50%;
  bottom: 44px;
  width: 97px;
  height: 97px;
  object-fit: contain;
  opacity: 0.7;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.5));
  user-select: none;
  pointer-events: none;
  transform: translateX(-50%);
}

@media (min-width: 1024px) {
  .container { padding: 96px 48px 200px 48px; max-width: 960px; }
  .name { font-size: 16px; }
  .tag { font-size: 14px; }
}


