@import url('https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,500;0,700;1,400&family=IBM+Plex+Mono:wght@400;500&display=swap');

@font-face {
  font-family: "Manic";
  src: url("/shared/fonts/MANIC-Alternates1-Regular.woff2") format("woff2");
  font-display: swap;
}

:root {
  --bg: #fff;
  --surface: #fafaf8;
  --text: #2a2a2a;
  --muted: #888;
  --accent: #b84532;
  --line: #e4e4e4;
  --mono: "IBM Plex Mono", "Menlo", monospace;
  --sans: "Ubuntu", -apple-system, sans-serif;
  --max-w: 700px;
}

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

html,
body {
  min-height: 100%;
}

body {
  margin: 0;
  color: var(--text);
  background: var(--bg);
  font-family: var(--sans);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

a {
  color: var(--accent);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

main {
  padding: clamp(1.2rem, 3vw, 2rem);
}

code,
pre,
kbd,
samp,
var {
  font-family: var(--mono);
}

.page-shell {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: clamp(1.2rem, 3vw, 2rem);
}

.portal-nav {
  display: flex;
  gap: 0.3rem;
  flex-wrap: wrap;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--line);
}

.portal-nav a {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: lowercase;
  color: var(--muted);
  padding: 0.35rem 0.55rem;
  text-decoration: none;
  transition: color 0.2s;
}

.portal-nav a:hover {
  color: var(--text);
  text-decoration: none;
}

.portal-nav a.active {
  color: var(--text);
  border-bottom: 2px solid var(--text);
}

.ghost-hint {
  position: fixed;
  bottom: 6%;
  left: 8%;
  font-family: "Manic", cursive;
  font-size: 2rem;
  line-height: 1.7;
  color: var(--text);
  opacity: 0.13;
  white-space: pre;
  pointer-events: none;
}
