*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }

body{
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: 'IBM Plex Sans', sans-serif;
  -webkit-font-smoothing: antialiased;
}

a{ color: inherit; text-decoration: none; }
::selection{ background: var(--accent); color: #0A0A0A; }

/* ---------- FLOATING PILL NAV ---------- */
.navbar{
  position: sticky;
  top: 24px;
  z-index: 50;
  display: flex;
  justify-content: center;
  pointer-events: none;
}
.navpill{
  pointer-events: auto;
  position: relative;
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 10px 24px;
  border-radius: 100px;
  background: rgba(20,20,17,0.7);
  backdrop-filter: blur(14px);
  border: 1px solid var(--line);
  font-size: 14px;
  color: #C9C6BC;
}
.navpill a{
  position: relative;
  padding-bottom: 3px;
  transition: color .25s ease;
}
.navpill.is-hovering a{ color: #6f6c62; }
.navpill a:hover{ color: var(--ink) !important; }
.nav-indicator{
  position: absolute;
  bottom: -3px; left: 0;
  height: 1px; width: 0;
  background: var(--accent);
  opacity: 0;
  transition: transform .35s cubic-bezier(.3,.8,.4,1), width .35s cubic-bezier(.3,.8,.4,1), opacity .2s ease;
  pointer-events: none;
}
.navpill.is-hovering .nav-indicator{ opacity: 1; }

/* ---------- MOBILE MENU BUTTON ---------- */
.mobile-menu-btn{
  display: none;
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 60;
  width: 44px; height: 44px;
  border-radius: 50%;
  border: none;
  background: rgba(20,20,17,0.55);
  backdrop-filter: blur(10px);
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.mobile-menu-btn span{
  position: absolute;
  width: 18px; height: 1.5px;
  background: var(--ink);
  transition: transform .3s ease, opacity .3s ease;
}
.mobile-menu-btn span:nth-child(1){ transform: translateY(-5px); }
.mobile-menu-btn span:nth-child(3){ transform: translateY(5px); }
.mobile-menu-btn.is-open span:nth-child(1){ transform: rotate(45deg); }
.mobile-menu-btn.is-open span:nth-child(2){ opacity: 0; }
.mobile-menu-btn.is-open span:nth-child(3){ transform: rotate(-45deg); }

.mobile-menu{
  display: none;
  position: fixed;
  inset: 0;
  z-index: 55;
  background: rgba(10,10,10,0.97);
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 28px;
  padding: 0 40px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
}
.mobile-menu.is-open{ opacity: 1; pointer-events: auto; }
.mobile-menu a{
  font-family: 'Kadwa', serif;
  font-size: 34px;
  color: var(--ink);
}

footer{
  text-align: center;
  padding: 16px 24px 48px;
  font-size: 12px;
  color: var(--ink-dim);
}

@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; }
  /* scroll-behavior isn't covered by the rule above, so smooth anchor jumps
     would otherwise still animate for people who asked them not to. */
  html{ scroll-behavior: auto; }
}
