﻿/* ===== Base ===== */
html { scroll-behavior: smooth; }


body {
 font-family: "Inter", ui-sans-serif, system-ui, sans-serif;
 font-feature-settings: "ss01", "cv11";
 letter-spacing: -0.01em;
}


.font-display { letter-spacing: -0.03em; }
.font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }


/* ===== Utilities ===== */
.tracking-tightest { letter-spacing: -0.04em; }
.text-balance { text-wrap: balance; }


.lattice-rule {
 background-image: linear-gradient(to bottom, transparent, hsl(213 30% 20%) 20%, hsl(213 30% 20%) 80%, transparent);
}


/* Drift animation for hero dots */
.drift { animation: drift 40s linear infinite; }
@keyframes drift {
 0%   { transform: translate(0, 0); }
 50%  { transform: translate(-2%, -1%); }
 100% { transform: translate(0, 0); }
}


/* Scroll reveal */
.reveal {
 opacity: 0;
 transform: translateY(24px);
 transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);
}
.reveal.in {
 opacity: 1;
 transform: translateY(0);
}