@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root{
  --maroon:#7A1B3A;
  --maroon-d:#54102A;
  --maroon-l:#9A2C4E;
  --green:#1F5C3C;
  --green-d:#123B27;
  --gold:#C79A3D;
  --ivory:#FBF7EF;
  --ink:#1C2431;
}

*{ -webkit-tap-highlight-color: transparent; }

html{ scroll-behavior:smooth; scroll-padding-top:96px; }

body{
  font-family:'Inter',ui-sans-serif,system-ui,sans-serif;
  background:var(--ivory);
  color:var(--ink);
}

.font-display{ font-family:'Fraunces', ui-serif, Georgia, serif; }
.font-mono{ font-family:'JetBrains Mono', ui-monospace, monospace; }

::selection{ background:var(--gold); color:#1C0E05; }
::-moz-selection{ background:var(--gold); color:#1C0E05; }

/* scrollbar */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:var(--ivory); }
::-webkit-scrollbar-thumb{ background:var(--maroon); border-radius:6px; border:2px solid var(--ivory); }

/* header shadow on scroll */
.header-shadow{ box-shadow:0 8px 30px -12px rgba(28,36,49,.35); }

.eyebrow{
  font-family:'JetBrains Mono', monospace;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-size:.72rem;
}

.link-underline{
  position:relative;
}
.link-underline::after{
  content:"";
  position:absolute; left:0; bottom:-4px;
  width:0; height:2px; background:var(--gold);
  transition:width .25s ease;
}
.link-underline:hover::after, .link-underline.active::after{ width:100%; }

.card-hover{ transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, border-color .35s ease; }
.card-hover:hover{ transform:translateY(-6px); box-shadow:0 24px 48px -20px rgba(84,16,42,.35); }

.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }
.reveal.in{ opacity:1; transform:translateY(0); }

.btn-primary{
  background:var(--maroon);
  color:var(--ivory);
  transition:background .25s ease, transform .2s ease;
}
.btn-primary:hover{ background:var(--maroon-d); transform:translateY(-2px); }

.btn-gold{
  background:var(--gold);
  color:#241505;
  transition:filter .25s ease, transform .2s ease;
}
.btn-gold:hover{ filter:brightness(1.08); transform:translateY(-2px); }

.btn-outline{
  border:1.5px solid rgba(251,247,239,.55);
  color:var(--ivory);
  transition:background .25s ease, border-color .25s ease;
}
.btn-outline:hover{ background:rgba(251,247,239,.12); border-color:var(--ivory); }

#hero-canvas{ position:absolute; inset:0; width:100%; height:100%; }

.node-badge{
  width:8px; height:8px; border-radius:999px; background:var(--gold);
  box-shadow:0 0 0 4px rgba(199,154,61,.18);
}

.dropdown{ opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .2s ease, transform .2s ease, visibility .2s; }
.group:hover .dropdown, .group:focus-within .dropdown{ opacity:1; visibility:visible; transform:translateY(0); }

.mobile-menu{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
.mobile-menu.open{ max-height:900px; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ transition:none; opacity:1; transform:none; }
}
